微信支付
公众号(jsapi)支付
一、支付配置
1、支付授权目录设置
登录微信支付商户平台(设置后一般5分钟内生效)
支付授权目录
①、如果支付授权目录设置为顶级域名,那么只校验顶级域名,不校验后缀;
②、如果支付授权目录设置为多级目录,就会进行全匹配
2、授权域名设置
开发JSAPI支付时,在统一下单接口中要求必传用户openid,而获取openid则需要在公众平台设置获取openid的域名,只有被设置过的域名才是一个有效的获取openid的域名
二、支付:
1、统一下单------PHP调用统一下单接口获取预支付订单,并返回给前端
url:https://api.mch.weixin.qq.com/pay/unifiedorder
必填字段:appid
商户号(mch_id)
随机字符串(nonce_str)
签名(sign)
商品描述(body)
商户订单号(out_trade_no)
金额(total_fee)
终端IP(spbill_create_ip)
通知地址(notify_url)
交易类型(trade_type=JSAPI)
2、JSAPI调起支付(调起成功,提示输入支付密码)
function onBridgeReady(){
WeixinJSBridge.invoke(
'getBrandWCPayRequest', {
"appId":"appid", //公众号id
"timeStamp":"1395712654", //时间戳,自1970年以来的秒数
"nonceStr":"e61463f8efa94090b1f366cccfbbb444", //随机串
"package":"prepay_id=u802345jgfjsdfgsdg888",
"signType":"MD5", //微信签名方式
"paySign":"paySign" //微信签名
},
function(res){
if(res.err_msg == "get_brand_wcpay_request:ok" ){
// 使用以上方式判断前端返回,微信团队郑重提示:
//res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
}
});
}
if (typeof WeixinJSBridge == "undefined"){
if( document.addEventListener ){
document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
}else if (document.attachEvent){
document.attachEvent('WeixinJSBridgeReady', onBridgeReady);
document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
}
}else{
onBridgeReady();
}
3、微信向前端和回调地址发送支付结果通知

浙公网安备 33010602011771号