zoukankan      html  css  js  c++  java
  • 微信JSAPI支付

    重度APP:微信 QQ 支付宝 去哪儿 滴滴

    轻量级APP: 美团、京东...

    小程序: 就是解决APP安装的问题.主要是解决轻量级APP的使用问题
    ===========================================================================================================================
    开发者文档: https://mp.weixin.qq.com/wiki

    微信开发测试账户: http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

    微信web开发者工具:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1455784140&token=&lang=zh_CN

    测试账号: appID:wxfcc4e68ca9b24b57  如果真正支付,则需要换成下面的支付账号

    appsecret:0e5a044e4b3e02cd20ef13dd397f6ddf

    支付微信支付的服务号:

    AppID:wx4518345b2ab754e1

    appsecret: 4aaf7d8e73e06714212c48cc35dd1fd8

    微信支付商户号: 1333752701

    微信支付密钥: fec8367d6125436a8ffeeb04029223f5
    ===========================================================================================================================
    签名: 目前微信支付、支付宝、易宝支付.....都遵循如下加密原则:

    明文  +  密钥  +  算法  ====> 密文, 然后把明文,和密文同时传入到服务器,服务器采用相同的方式对明文进行加密.如果加密之后的文字与传入的密文相等则说明数据没有被篡改

    1: access_token: 有效期7200秒,开发者必须在自己的服务全局缓存jsapi_ticket

    获取token地址: access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前
    为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效

    获取token的地址: https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

    获取的token如下: x7IGqdiwLt1nIeD1HY6Vla5k4rUybymQK-6UwVsX6KAUWZSfE6rdTIAOKyFEW_psmWshWpzuwCziUYRTwTCnIfBO5DQxYGdwCORNlDePC0gyYG3jjJTCphT6gqD5C6rnWECaABADLJ


    2: jsapi_ticket: 公众号用于调用微信JS接口的临时票据(对于JS-SDK权限开发验证),为了安全两小时获取一次,获取access_token之后就可以通过它获取jsapi_ticket

    获取ticket的地址如下: https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=x7IGqdiwLt1nIeD1HY6Vla5k4rUybymQK-6UwVsX6KAUWZSfE6rdTIAOKyFEW_psmWshWpzuwCziUYRTwTCnIfBO5DQxYGdwCORNlDePC0gyYG3jjJTCphT6gqD5C6rnWECaABADLJ&type=jsapi

    获取的jsapi_ticket 如下: kgt8ON7yVITDhtdwci0qebip4jpiah_WgQZnJvhlgE2fo6RvvviPoIuKYfguHtT-y7pWoLzmMkTKTbmBYGX46w

    JS接口签名工具: http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign

    官方config加密文件: http://demo.open.weixin.qq.com/jssdk/sample.zip
    ===========================================================================================================================
    微信支付的三大步骤:

    1: 获取用户openID: 在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID,对于不同公众号,同一用户的openid不同id

       1.1: 用户同意授权,获取code   https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx4518345b2ab754e1&redirect_uri=http://www.jxy-edu.com/result.jsp&response_type=code&scope=snsapi_userinfo#wechat_redirect
       
       1.2: 通过获取的code,返回当前关注者在当前服务号唯一的openId  https://api.weixin.qq.com/sns/oauth2/access_token?appid=wx4518345b2ab754e1&secret=4aaf7d8e73e06714212c48cc35dd1fd8&code=0215wGRM0gyO872TmNRM0F8IRM05wGRk&grant_type=authorization_code
        
       我的openID为: onejlwKjnW7KAOgotykVdEQID-tQ

    2: 获取prepay_id: 提交支付信息,和商户信息到微信服务器,如果数据没有被篡改则微信服务器会返回一个prepay_id(真正支付时需要)

       2.1: 支付接口调试工具 https://pay.weixin.qq.com/wiki/tools/signverify/

       2.2: 根据插件发送http请求,传送的是xml数据: 如果参数正常则返回 prepay_id(两小时内有效):wx20170126183600307be1f91f0767641245

    3: wx.chooseWXPay:发送真正微信支付请求

       3.1: 必须保证支付和config是同一个appid

       3.2: 参与支付验证的参数为: appId, timeStamp, nonceStr, package, signType







































  • 相关阅读:
    深入研究Servlet线程安全性问题
    Sun公司java语言编码规范
    JAVA的内省机制(introspector)与反射机制(reflection)[转]
    Oracle的悲观锁和乐观锁
    java中120个经典问题
    自定义Java异常
    Java事务处理总结
    Tomcat内存溢出的三种情况及解决办法分析
    .net基础
    C#.Net中的转义
  • 原文地址:https://www.cnblogs.com/jalja/p/6747323.html
Copyright © 2011-2022 走看看