商户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 wxpayScoreDetail 固定配置:wxpayScoreDetail
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&
service_id=88888888000011&out_order_no=1234323JKHDFE1243252&
timestamp=1530097563&nonce_str=zyx53Nkey8o4bHpxTQvd8m7e92nG5mG2&
sign_type=HMAC-SHA256&sign=029B52F67573D7E3BE74904BF9AEA
        

query内部参数

字段名 必填 类型 示例值 说明
mch_id String 1230000109 微信支付分配的商户号
service_id String 88888888000011 服务ID
out_order_no String 1234323JKHDFE1243252 商户侧单号
timestamp String 1530097563 生成签名时间戳,单位秒
nonce_str String zyx53Nkey8o4bHpxTQvd8m7e92nG5mG2 生成签名随机串。由数字、大小写字母组成,长度不超过32位
sign_type String HMAC-SHA256 签名类型。仅支持HMAC-SHA256
sign String 029B52F67573D7E3BE74904BF9AEA 使用字段mch_id、service_id、out_order_no、timestamp、nonce_str、sign_type按照签名生成算法计算得出的签名值

iOS示例代码:


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

Android示例代码:


 
int wxSdkVersion = api.getWXAppSupportAPI();
if (wxSdkVersion >= Build.OPEN_BUSINESS_VIEW_SDK_iNT) {
  WXOpenBusinessView.Req req = new WXOpenBusinessView.Req();
  req.businessType = "wxpayScoreDetail";
  req.query = "mch_id=1230000109&service_id=88888888000011&
  out_order_no=1234323JKHDFE1243252&
  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();
  }
}