前言
最近公司項目要求app拉起微信小程序逊脯,使用微信小程序進行支付优质,開始一聽,有點懵逼军洼,迷茫巩螃,不知所措.....后來經過一番折騰,預研匕争,查看相關資料避乏,請教相關人士,終于有了結果甘桑,下面給大家分享一下吧拍皮。
歡迎加我技術交流QQ群 :811956471
前提條件準備:app和微信開放平臺進行綁定
一.app端要做的事情:
原生語言:
public void do_WX(String paramString) {
this.api = WXAPIFactory.createWXAPI(this.context, "wx13421424214");//小程序appid
WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req();
req.userName = "gh_1aXXXXXX";//小程序ID
req.path = paramString;
req.miniprogramType = 1;
this.api.sendReq(req);
}
支付按鈕事件:
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View param1View) { MainActivity.this.do_WX("小程序url?Param1=XX¶m2=YY"); }
});
我用的是uni-app開發(fā)的app歹叮,代碼片段:
onLoad() {
// #ifdef APP-PLUS
plus.share.getServices((s)=> {
var shares = {};
for (var i = 0; i < s.length; i++) {
var t = s[i];
shares[t.id] = t;
}
var sweixin = shares['weixin'];
this.sweixin=sweixin
}, function(e) {
console.log("獲取分享服務列表失敗:" + e.message);
});
//#endif
},
methods: {
kanshipin: function() {
//#ifdef APP-PLUS
this.sweixin ? this.sweixin.launchMiniProgram({
path: 'pages/test/test?phone=13201860552',
type: 1,//可取值: 0-正式版铆帽; 1-測試版咆耿; 2-體驗版。 默認值為0爹橱。
id: '原始微信小程序id'
}) : plus.nativeUI.alert('當前環(huán)境不支持微信操作!');
//#endif
}
}
好了萨螺,到此app打開小程序的事情已經做完了
二:小程序端要做的事情
1、發(fā)起支付:
在微信小程序里面指定一個頁面愧驱,當app跳轉到這個頁面的時候慰技,在onLoad的函數里面判斷app傳遞過來的參數,直接調用小程序的api發(fā)起支付即可冯键,此處省略代碼一千行惹盼,詳情看小程序的開發(fā)文檔即可。
2惫确、發(fā)起支付完成返回app:
用小程序的api:
<button open-type="launchApp" app-parameter="wechat" binderror="launchAppError">打開APP</button>
效果就是直接返回到了剛剛app打開小程序的那個頁面手报,非常棒。
三改化、總結:
(1)商戶小程序與APP主體一致掩蛤,直接調用,如無陈肛,自助完成綁定關系揍鸟;
(2)商戶App調用自有微信小程序的跳轉接口并攜帶商戶的身份和交易核心數據;
(3)小程序接收到數據后,調用統(tǒng)一下單接口;
(4)在小程序中確認支付;
(5)完成支付之后返回商戶自己App(Android/IOS通用)句旱,完成整個支付流程阳藻,收銀寶完成異步通知。
四谈撒、注意事項:
1腥泥、前提條件準備:app和微信開放平臺進行綁定
2、小程序目前不可以直接打開app,打開app的前提是啃匿,是app打開小程序之后蛔外,才可以在小程序里面打開app(說白了其實就是小程序直接返回app)