微信支付开发-从零开始-Part3

来源:互联网 发布:做音乐的软件 编辑:程序博客网 时间:2024/04/28 13:22

上一篇博文已经获取到了prepay_id-下一步可以传递给客户端调用微信的js发起支付界面进行支付了。看似很简单,也遇到不少问题。这里记录下来-

统一下单请求成功后返回的XML格式参数如下

<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg><appid><![CDATA[wx465d987ac2000000]]></appid><mch_id><![CDATA[1263500000]]></mch_id><device_info><![CDATA[WEB]]></device_info><nonce_str><![CDATA[SOdpVyp0ze3PJUfj]]></nonce_str><sign><![CDATA[CDD5B2E19FF5979374FF678D09D7C7A1]]></sign><result_code><![CDATA[SUCCESS]]></result_code><prepay_id><![CDATA[wx2016050912001362f6e315510009178410]]></prepay_id><trade_type><![CDATA[JSAPI]]></trade_type></xml>
其中最重要的就是prepay_id了-我们可以在后台JAVA取出此id返回给前台,但是前台调起支付界面还需要其他的参数,如下:也就是在后台一要获取prepay_id,二要取得当前十位数字的时间戳,三要将下面的五个参数进行签名

"appId" : '${success.appId}',     //公众号名称,由商户传入"timeStamp":'${success.timeStamp}',         //时间戳,自1970年以来的秒数【注意是秒数10位的】"nonceStr":'${success.nonceStr}', //随机串,同上篇博文的随机算法"package":'${package1}',"signType":"MD5",         //微信签名方式:MD5"paySign":'${success.paySign}' //微信签名,在后台将上面五个参数进行签名,签名算法同上一篇博文


遇到的错误:

1.暂时不支持此sdk模拟

因为我用的微信的开发工具测试的所以有这个提示,微信支付不能使用这个进行测试,直接用真实的微信在手机上测试

2.授权目录一定要写对:当前页面的url未注册。将要支付的微信加入测试白名单,测试授权目录填写正确【付款页面必须在此页面下,支付地址也要在此文件夹下,注意我使用的SpringMVC,即使发送的请求是locahost:/pay.do--也要改为localhost/pages/pay.do】



3.JS回调域名要在测试域名下,还是建议我写的微信测试本地化环境搭建那样,用ngrok搭建本地环境

0 0
原创粉丝点击