商户APP跳转微信侧小程序-确认订单

简介

App跳转微信侧小程序需要引用新的openSDK
Android openSDK下载地址(版本>=5.3.1): Android资源下载
Android 接入文档链接:openSDK说明文档
iOS openSDK下载地址(版本>=1.8.4):iOS资源下载
iOS 接入文档链接:openSDK说明文档
接口名称: WXOpenBusinessView
接口兼容:

  • iOS兼容性表现:若微信版本 >= 7.0.3,开发者可以通过此openSDK接口拉起微信侧小程序;若微信版本 < 7.0.3,开发者通过此openSDK接口可以跳转到微信,但是不能拉不起微信侧小程序,此时微信会提示用户可能由于应用的请求非法或者微信版本过低。
  • Android兼容性表现:若微信版本>=7.0.3,开发者可以通过此openSDK接口拉起微信侧小程序;若微信版本<7.0.3,开发者通过此openSDK接口不能跳转到微信,也不能拉起微信侧小程序,此时开发者应提示用户更新微信版本。

接口参数

  • Android对应对象:WXOpenBusinessView.Req
  • iOS对应对象:WXOpenBusinessViewReq

Object WXOpenBusinessView.Req & Object WXOpenBusinessViewReq

字段名 必填 类型 示例值 说明
businessType String wxpayScoreUse 固定配置:wxpayScoreUse
query String 见query示例 使用URL的query string方式传递参数,格式为key=value&key2=value2,其中value,value2需要进行UrlEncode处理
extInfo String {"miniProgramType": 0} 自定义ext信息,json格式,如需指定小程序版本,可填 {"miniProgramType": type}。type取值:0-正式版;1-开发版;2-体验版,默认正式版

query示例:

			
mch_id=1230000109&package=XXXXXXXX&
timestamp=1530097563&
nonce_str=zyx53Nkey8o4bHpxTQvd8m7e92nG5mG2&
sign_type=HMAC-SHA256&sign=029B52F67573D7E3BE74904BF9AEA
			

query内部参数:

字段名 必填 类型 示例值 说明
mch_id String 1230000109 微信支付分配的商户号
package String XXXXXXXX 可在【创建订单】接口的返回字段package中获取
timestamp String 1530097563 生成签名时间戳,单位秒
nonce_str String zyx53Nkey8o4bHpxTQvd8m7e92nG5mG2 生成签名随机串。由数字、大小写字母组成,长度不超过32位
sign_type String HMAC-SHA256 签名类型。仅支持HMAC-SHA256
sign String 029B52F67573D7E3BE74904BF9AEA 使用字段mch_id、package、timestamp、nonce_str、sign_type按照签名生成算法计算得出的签名值

返回参数

  • Android 返回字段:WXOpenBusinessView.Resp
  • iOS返回字段:WXOpenBusinessViewResp

Object WXOpenBusinessView.Resp & Object WXOpenBusinessViewResp

字段名 必填 类型 示例值 说明
businessType String wxpayScoreUse 打开的业务类型
extMsg String 见extMsg示例 微信侧小程序返回的业务数据,json格式

extMsg示例:

{"query_id":"XXXXXX","appid":"wxd8f3793ea3b935b8"}

extMsg内部参数:

字段名 必填 类型 示例值 说明
query_id String XXXXXXXX 单据查询id,对应【查询订单】接口中入参query_id
appid String wxd8f3793ea3b935b8 微信侧小程序appid

iOS示例代码:

WXOpenBusinessViewReq *req = [WXOpenBusinessViewReq object];
req.businessType = @"wxpayScoreUse";
req.query = @"mch_id=1230000109&package=XXXXXXXX&
timestamp=1530097563&
nonce_str=zyx53Nkey8o4bHpxTQvd8m7e92nG5mG2&sign_type=HMAC-SHA256&sign=029B52F67573D7E3BE74904BF9AEA";
req.extInfo = @"{\"miniProgramType\":0}";
[WXApi sendReq:req];

安卓示例代码:

int wxSdkVersion = api.getWXAppSupportAPI();
if (wxSdkVersion >= Build.OPEN_BUSINESS_VIEW_SDK_iNT) {
  WXOpenBusinessView.Req req = new WXOpenBusinessView.Req();
  req.businessType = "wxpayScoreUse";
  req.query = "mch_id=1230000109&package=XXXXXXXX&
  timestamp=1530097563&
  nonce_str=zyx53Nkey8o4bHpxTQvd8m7e92nG5mG2&sign_type=HMAC-SHA256&sign=029B52F67573D7E3BE74904BF9AEA";
  req.extInfo = "{\"miniProgramType\": 0}";
  Boolean ret = api.sendReq(req);
} else {
  /*需提示用户升级微信版本*/
}
​
/********在WXEntryActivity的onResp里面接收回调,示例全码*******/
@Override
public void onResp(BaseResp r) {
  if (r.getType() == ConstantsAPI.COMMAND_OPEN_BUSINESS_VIEW) {
    WXOpenBusinessView.Resp launchMiniProgramResp = (WXOpenBusinessView.Resp) r;
    String text = String.format("nextMsg=%snerrStr=%snbusinessType=%s",
                resp.extMsg, resp.errStr, resp.businessType);
    Toast.makeText(this, text, Toast.LENGTH_lONG).show();
  }
}