微信支付之jsapi
這兩天在研究微信公眾號的支付,弄完以後寫一個文件,方便以後自己再次做這個的時候可以看。
首先,https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_1;
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842;
在你開始操作之前請先閱讀微信文件,微信提供給你的資料你都不看那就是對不起自己了!
開始之前先先介紹下上面的js介面安全域名和網頁授權域名這兩個東西,因為我的專案涉及到好幾個二級域名,所以這裡踩了挺多坑的。js介面安全域名應該指的是隻有在這個域名下你才可以呼叫jsapi,其他域名下是沒用的,
function jsApiCall()
{
WeixinJSBridge.invoke(
'getBrandWCPayRequest',
<?php echo $code;?>,
function(res){
//alert(res.err_msg);
//WeixinJSBridge.log(res.err_msg);
if(res.err_msg == "get_brand_wcpay_request:ok" ) {
window.location.href = "<?php echo return_url('weixin');?>";
} else {
alert("交易取消");
window.location.href = "./index.php";
}
}
);
}
//function callpay()
window.onload = function ()
{
if (typeof WeixinJSBridge == "undefined"){
if( document.addEventListener ){
document.addEventListener('WeixinJSBridgeReady', jsApiCall, false);
}else if (document.attachEvent){
document.attachEvent('WeixinJSBridgeReady', jsApiCall);
document.attachEvent('onWeixinJSBridgeReady', jsApiCall);
}
}else{
jsApiCall();
}
}
也就是這一段程式碼必須在你的js介面安全域名設定下的才行,否則會返回
,
那麼網頁授權域名是幹什麼的呢,是獲取使用者openid用的,
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
這個介面是在微信獲取網頁授權的第一步,獲取code用的,當中的redirect_uri 是你請求微信介面後希望微信返回給你的地址,請注意,這裡的
redirect_uri 必須在你的網頁授權域名下才行,否則會提示
還有這個redirect_uri是可以傳引數的,我當時需要傳引數,但是當你傳兩個引數的時候 ?code=123&amount=100 ,請注意,他返回給你的時候只會給你帶一個引數,code=123會返回給你,後面的amount是沒得,所以如果你想傳多個引數的時候請自行設定!
把我自己踩的坑先說了一遍,接下來說一下基本步驟:
1:開通你的支付功能
2:通過你自己的appid獲取你的商家的一些資訊,這個其他地方有,你弄好後會微信會發郵件給你的郵箱,自己檢視就行了;
其他的自行百度吧,提供個連線https://www.cnblogs.com/aksir/p/6780697.html;