6
回答
做过微信网页版支付的请进~~!
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

想做个微信网页版支付,看了下微信JS-SDK的接口文档:http://mch.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1

文档中说明了参数传输格式为xml,但是数据该怎么提交啊?比如

<xml>
   <appid>wx2421b1c4370ec43b</appid>
   <attach>支付测试</attach>
   <body>JSAPI支付测试</body>
   <mch_id>10000100</mch_id>
   <nonce_str>1add1a30ac87aa2db72f57a2375d8fec</nonce_str>
   <notify_url>http://wxpay.weixin.qq.com/pub_v2/pay/notify.v2.php</notify_url>
   <openid>oUpF8uMuAJO_M2pxb1Q9zNjWeS6o</openid>
   <out_trade_no>1415659990</out_trade_no>
   <spbill_create_ip>14.23.150.211</spbill_create_ip>
   <total_fee>1</total_fee>
   <trade_type>JSAPI</trade_type>
   <sign>0CB01533B8C1EF103065174F50BCA001</sign>
</xml>

如果我用ajax该怎么提交数据呢,参数名怎么写?谢谢!

举报
liujiduo
发帖于3年前 6回/5K+阅
共有6个答案 最后回答: 3年前

你上面的这些东西是要用统一下单接口推给微信的。

我做过,总结了一下,可以参考一下:http://www.360us.net/article/22.html

--- 共有 2 条评论 ---
OSC首席键客回复 @liujiduo : 支付不是直接js和微信服务器通信的,你要先用后台程序和微信服务器通知,拿到参数之后再用微信的jsapi发起交易的。 你所说的这些xml不是用客户端的js直接发送给微信,要后台程序去做。 3年前 回复
liujiduophp很给力啊,可惜我不会,如果我在静态html页面用ajax怎么提交xml数据呢? 3年前 回复
LZ你可能理解错了。

比如,充值,微信打开一个充值页面,然后选定金额,你把这个金额Ajax发送给后台程序,然后后台程序根据统一下单接口的参数要求发送xml给微信服务器,会返回给你预支付订单ID:prepay_id。

你在看一下这里:http://mch.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7

这个函数:

function onBridgeReady(){
   WeixinJSBridge.invoke(
       'getBrandWCPayRequest', {
           "appId" : "wx2421b1c4370ec43b",     //公众号名称,由商户传入     
           "timeStamp":" 1395712654",         //时间戳,自1970年以来的秒数     
           "nonceStr" : "e61463f8efa94090b1f366cccfbbb444", //随机串     
           "package" : "prepay_id=u802345jgfjsdfgsdg888",     
           "signType" : "MD5",         //微信签名方式:     
           "paySign" : "70EA570631E4BB79628FBCA90534C63FF7FADD89" //微信签名 
       },
       function(res){     
           if(res.err_msg == "get_brand_wcpay_request:ok" ) {}     // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回    ok,但并不保证它绝对可靠。 
       }
   ); 
}

上面invoke函数的第二个参数,其实就是json对象。

后台调用玩统一下单接口之后你直接返回上面第二个参数形式的json数据就可以了。

然后就像上面那样用js执行一下就会弹出微信支付的框。

顶部