商户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();
}
}