app跳转小程序发起支付再返回app,经验分享
2020-04-28 本文已影响0人
不忘初心_d
前言
最近公司项目要求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开发的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('当前环境不支持微信操作!');
//#endif
}
}
好了,到此app打开小程序的事情已经做完了
二:小程序端要做的事情
1、发起支付:
在微信小程序里面指定一个页面,当app跳转到这个页面的时候,在onLoad的函数里面判断app传递过来的参数,直接调用小程序的api发起支付即可,此处省略代码一千行,详情看小程序的开发文档即可。
2、发起支付完成返回app:
用小程序的api:
<button open-type="launchApp" app-parameter="wechat" binderror="launchAppError">打开APP</button>
效果就是直接返回到了刚刚app打开小程序的那个页面,非常棒。
三、总结:
(1)商户小程序与APP主体一致,直接调用,如无,自助完成绑定关系;
(2)商户App调用自有微信小程序的跳转接口并携带商户的身份和交易核心数据;
(3)小程序接收到数据后,调用统一下单接口;
(4)在小程序中确认支付;
(5)完成支付之后返回商户自己App(Android/IOS通用),完成整个支付流程,收银宝完成异步通知。
四、注意事项:
1、前提条件准备:app和微信开放平台进行绑定
2、小程序目前不可以直接打开app,打开app的前提是,是app打开小程序之后,才可以在小程序里面打开app(说白了其实就是小程序直接返回app)