微信jsapi支付:
1 function startWxPay(url) { 2 var idx = layer.msg("正在启动微信支付", {time: 0}); 3 var prepayId = false; 4 5 $.post("{{URL::to(‘chat/prepay/‘.$order->id)}}", function (resp) { 6 if (resp.success) { 7 prepayId = resp.prepay_id; 8 9 if (typeof WeixinJSBridge == "undefined"){ 10 if( document.addEventListener ){ 11 document.addEventListener(‘WeixinJSBridgeReady‘, onBridgeReady, false); 12 }else if (document.attachEvent){ 13 document.attachEvent(‘WeixinJSBridgeReady‘, onBridgeReady); 14 document.attachEvent(‘onWeixinJSBridgeReady‘, onBridgeReady); 15 } 16 }else{ 17 onBridgeReady(); 18 } 19 } else { 20 alert(resp.message); 21 } 22 }); 23 24 function onBridgeReady() { 25 $.post("{{URL::to(‘wxpay/js-api‘)}}/" + prepayId, function (resp) { 26 if (resp.success) { 27 WeixinJSBridge.invoke(‘getBrandWCPayRequest‘, { 28 appId: resp.param.appId, 29 timeStamp: resp.param.timeStamp.toString(), 30 nonceStr: resp.param.nonceStr, 31 package: resp.param.package, 32 signType: resp.param.signType, 33 paySign: resp.param.paySign 34 }, function (res) { 35 // alert(res.err_code+res.err_msg+res.err_desc); 36 if (res.err_msg && res.err_msg.match(/cancel/)) { 37 alert("交易取消"); 38 location.reload(); 39 } else if (res.err_msg && res.err_msg.match(/ok/)) { 40 location.href = url; 41 }else if (res.err_msg && res.err_msg.match(/fail/)){ 42 alert(res.err_code+res.err_msg+res.err_desc); 43 // alert("交易失败"); 44 location.reload(); 45 } 46 } 47 ); 48 } 49 }); 50 } 51 }
getBrandWCPayRequest参数以及返回值定义见图7.1,返回列表值说明见图7.2。
表7.1 网页端接口参数列表
名称 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
公众号id | appId | 是 | String(16) | wx8888888888888888 | 商户注册具有支付权限的公众号成功后即可获得 |
时间戳 | timeStamp | 是 | String(32) | 1414561699 | 当前的时间,其他详见时间戳规则 |
随机字符串 | nonceStr | 是 | String(32) | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS | 随机字符串,不长于32位。推荐随机数生成算法 |
订单详情扩展字符串 | package | 是 | String(128) | prepay_id=123456789 | 统一下单接口返回的prepay_id参数值,提交格式如:prepay_id=*** |
签名方式 | signType | 是 | String(32) | MD5 | 签名算法,暂支持MD5 |
签名 | paySign | 是 | String(64) | C380BEC2BFD727A4B6845133519F3AD6 | 签名,详见签名生成算法 |
表7.2 网页内支付接口err_msg返回结果值说明
返回值 | 描述 |
---|---|
get_brand_wcpay_request:ok | 支付成功 |
get_brand_wcpay_request:cancel | 支付过程中用户取消 |
get_brand_wcpay_request:fail | 支付失败 |
查看详细的返回信息:
alert(res.err_code+res.err_msg+res.err_desc);