更新记录
1.0.2(2022-12-03)
补充插件采集的数据
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 12.0 | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | 适用版本区间:9 - 13 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
注意:杉德支付和杉德河马支付一起打包时会云打包失败
App模块配置,需要勾选微信支付
官方文档地址:https://www.yuque.com/sd_cw/etmgxs/cq9zg4?#72d064a1
产品:APP包装微信小程序(微信sdk)01010005、APP包装支付宝(支付宝sdk)01020004
Android引用
const sandehmpay = uni.requireNativePlugin("TangSoft-shandeHeMaPay");
Android所有方法
showToast():我用来测试uniapp是否和插件关联上了而已
cashierPay():发起支付,支付宝和微信都是这一个方法
Android支付方法
接口返回orderjson
sandehmpay.cashierPay(orderjson, res => {
console.log("cashierPay方法调用成功>>>", res);
})
Android拉起微信小程序支付时会回调
var globalEvent = uni.requireNativePlugin('globalEvent');
globalEvent.addEventListener('shandeEvent', function(e) {
console.log('监听>>>myEvent' + JSON.stringify(e));
});
IOS引用
const sandehmpay = uni.requireNativePlugin("TangSoft-shandeHeMaPay")
IOS所有方法
showToast():我用来测试uniapp是否和插件关联上了而已
cashierPay():发起支付,支付宝和微信都是这一个方法
IOS支付方法
接口返回orderjson
var orderjson = JSON.parse(orderjson)
sandehmpay.cashierPay(orderjson, (res) => {
console.log("initNSNotificationCenter>>>>", res);
})
调用支付宝还是微信是根据后台接口字段来定:orderjson.product_code
orderjson数据
{
"version": "10",
"mer_no": "123456",
"mer_key": "",
"mer_order_no": "1598858152976",
"create_time": "20200831151552",
"expire_time": "20200831151557",
"order_amt": "0.01",
"notify_url": "https://baidu.com.cn/notify_test/sand",
"return_url": "",
"create_ip": "127_0_0_1",
"goods_name": "测试商品",
"store_id": "100001",
"product_code": "01020004",
"clear_cycle": "0",
"pay_extra": "{\"mer_app_id\":\"\",\"openid\":\"\",\"buyer_id\":\"\",\"wx_app_id\":\"\",\"gh_ori_id\":\"\",\"path_url\":\"\",\"miniProgramType\":\"\"}",
"jump_scheme": "sandcash://scpay",
"sign_type": "RSA",
"accsplit_info": "N",
"sign": "Xx52CDtWRH1etGu4IfFEB4OeRrnbr+EUd5VO7cBQFCqxfDl5FJcJaUjKJbHapVsyxSODBEbssNk=",
"meta_option": "[{\"sc\":\"sandcash://\",\"s\":\"Android\",\"id\":\"com.sdzf.demo\",\"n\":\"杉德支付\"},{\"sc\":\"\",\"s\":\"IOS\",\"id\":\"\",\"n\":\"\"}]"
}
插件问题
1、为了不冲突,需要使用UniApp里的App模块配置:微信支付。
2、
无法跳转回APP解决
1、sandcash 这个值是自己定义的,插件没有任何配置 2、接口拼接的参数
sParaTemp.Add("jump_scheme", "sandcash://");
sParaTemp.Add("meta_option", "[{\"sc\":\"sandcash://\",\"s\":\"Android\",\"id\":\"com.sdzf.demo\",\"n\":\"杉德支付\"},{\"sc\":\"\",\"s\":\"IOS\",\"id\":\"\",\"n\":\"\"}]");
3、manifest.json源代码配置
app-plus ——> distribute ——> android ——> "schemes" : "sandcash"
app-plus ——> distribute ——> ios ——> "urltypes" : "sandcash"
我的常见问题
1、吊起显示验签未通过
实际就是报文有问题,检查报文,我遇到了pay_extra忘记填默认值导致了,但是Android没问题,IOS会出现问题
2、吊起显示order is not exist
create_time和expire_time不能一样,我就是这样导致了
3、支付没有回调信息
文档3.1.d有说明报备域名
4、目前发现IOS打包冲突
杉德支付和杉德河马支付一起打包时会云打包失败
5、肯定还有问题,只是我没(懒)发(得)现(改),拜了个拜
嗯是的没错
6、