更新记录

1.0.2(2022-12-03)

补充插件采集的数据


平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 12.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 适用版本区间:9 - 13

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
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、

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件使用了杉德河马付三方SDK。 需要说明使用的三方SDK及其官方网址:https://hmpay.sandpay.com.cn/merchant/login(商家中心) 插件支付功能使用杉德河马付SDK 官方文档:https://www.yuque.com/sd_cw/etmgxs/cq9zg4?#72d064a1

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问