微信APP支付转小程序支付

思路概述:

商户APP跳转到商户小程序,跳转时附带支付参数,小程序内下单做支付。支付完成后,回调商户APP带回支付结果,APP展示支付结果。

功能要点:

1,APP跳转微信小程序
2,小程序获取用户open_id
3,小程序处理

APP跳转微信小程序

  • 下载微信SDK
  • 接入SDK,
    官方说明

配置准备:

  • 在微信开放平台上有账号而且有通过的移动应用。
  • 在微信公众平台有账号而且有小程序,最好发布为体验版本


    微信APP支付转小程序支付_第1张图片
    image.png
  • 在微信开放平台把对应的移动应用和小程序建立关联
  • 调用代码
    示例代码:
//微信建议应用启动时调用
[WXApi registerApp:@"wx_app_id"];//wx_app_id 为移动应用的appid
...
...
...
//跳转小程序部分
WXLaunchMiniProgramReq *launchMiniProgramReq = [WXLaunchMiniProgramReq object];
launchMiniProgramReq.userName = @"gh_4fxxxxxx";  //待拉起的小程序原始Id 
launchMiniProgramReq.path = @"pages/index/index?query='test'";    ////拉起小程序页面的可带参路径,不填默认拉起小程序首页,对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar"。
launchMiniProgramReq.miniProgramType = WXMiniProgramTypePreview; //拉起小程序的类型
[WXApi sendReq:launchMiniProgramReq];
...
...
...

小程序返回APP 回调需实现以下代码

-(void)onResp:(BaseResp*)resp{
    
    if ([resp isKindOfClass:[WXLaunchMiniProgramResp class]])
    {
//        NSString *string = resp.extMsg;
        // 对应JsApi navigateBackApplication中的extraData字段数据
    }
}

小程序获取用户open_id

小程序处理

1,接收APP传来的参数
上面的App打开的path是'path/index',所以需要把App的onLaunch事件定义在page/index.js上


微信APP支付转小程序支付_第2张图片
image.png

这里的options.scene是1069,这个场景id表示从app打开。
options.query.key1和options.query.key2就是app打开小程序传递的参数。

2,关闭小程序,回到APP

官方说明



Page({
  launchAppError (e) {
    console.log(e.detail.errMsg)
  }
})

APP端需要设置正确URL scheme才能从微信正确回调。


微信APP支付转小程序支付_第3张图片
image.png

你可能感兴趣的:(微信APP支付转小程序支付)