jackybian
jackybian
  • 发布:2017-08-30 14:19
  • 更新:2018-07-15 08:19
  • 阅读:7511

微信支付appid在代码中配置的需求

分类:5+ SDK

有一个很奇怪的问题。为什么 微信支付要填addpid呢,可以支持配置多个appid吗?

我们有一个需求,根据不同的商品需要切换不同的支付服务商。
但是manifest配置微信支付地方只有一个文本框,请问
1、能否支持配置多个微信支付appid
2、通过参数形式传给plus.payment.request。
目前支付宝支付就是靠传递的appid参数来设置的,为什么微信支付不行呢?请求支持。

let data = {  
                    retcode: 0,  
                    retmsg: 'ok',  
                    appid: d.data.appid,  
                    partnerid: d.data.partnerid,  
                    prepayid: d.data.prepayid,  
                    noncestr: d.data.noncestr,  
                    package: d.data.package,  
                    timestamp:  d.data.timestamp,  
                    sign: d.data.sign  
                };  

                plus.payment.request(  
                    channel,  
                    data,  
                    function(result){  
                        location.href = (__root+'payment/?oid='+sn + '&pay=success') ;  
                    },function(error){  
                        /*  
                         支付宝支付错误代码如下: 62000,客户端未安装支付通道依赖的服务; 62001,用户取消支付操作; 62002,此设备不支持支付; 62003,数据格式错误; 62004,支付账号状态错误; 62005,订单信息错误; 62006,支付操作内部错误; 62007,支付服务器错误; 62008,网络问题引起的错误; 62009,其它未定义的错误。 微信支付错误代码如下: -1,一般错误; -2,用户取消; -3,发送失败; -4,认证被否决; -5,不支持错误。  
                         * */  
                        let codeMsgArr=[];  
                        codeMsgArr['-1'] = '参数错误    5+API传入的参数不正确';  
                        codeMsgArr['-2'] = '用户取消    用户取消当前的操作';  
                        codeMsgArr['-3'] = '此功能不支持  当前5+Runtime不支持此功能';  
                        codeMsgArr['-4'] = '文件不存在   操作的文件或目录不存在';  
                        codeMsgArr['-5'] = 'IO错误    文件读写操作错误,如文件被其它程序占用等';  
                        codeMsgArr['-6'] = '网络错误    无法连接到网络';  
                        codeMsgArr['-7'] = '业务参数配置缺失    使用第三方SDK时缺失SECRET、APPID、APPKEY等数据';  
                        codeMsgArr['-8'] = '客户端未安装  调用的第三方客户端未安装';  
                        codeMsgArr['-9'] = '快捷方式已存在 创建快捷方式时快捷方式已存在,仅部分手机支持';  
                        codeMsgArr['-10'] = '授权失败   用户拒绝该API访问';  
                        codeMsgArr['-99'] = '未知错误   未定义的错误';  
                        codeMsgArr['-100'] = '业务内部错误    使用的第三方SDK内部错误';  
                        if(error.code == '-8'){  
                            plus.nativeUI.alert("支付失败:" + codeMsgArr['-8'] );  
                        }else{  
                            plus.nativeUI.alert("支付失败:" + error.code );  
                        }  
                    }  
                );

由于data.appid 我们传入的值和配置里的不一样,导致报错,弹出提示 “支付支付:9”。

2017-08-30 14:19 负责人:无 分享
已邀请:
源一

源一

同问!同问!同问!同问!同问!同问!同问!同问!同问!同问!同问!同问!同问!同问!同问!同问!同问!同问!同问!同问!同问!同问!同问!同问!同问!同问!同问!同问!同问!

源一

源一

同样的需求,同样的问题。

难道app使用微信支付只能向一个微信商户支付?

d***@163.com

d***@163.com

怎么没人回复啊

牵风纸鸢

牵风纸鸢

同问同问,一直在想办法处理这个需求。

牵风纸鸢

牵风纸鸢

楼主解决了吗?

JRay

JRay - 爱摄影捡垃圾的码畜

同样的需求啊,楼主找到方案了吗?

JRay

JRay - 爱摄影捡垃圾的码畜

目前想到一个方案,原理就是微信支付的时候会先注册appid,默认的是读取的配置文件里面的那个appid进行的注册。这里写一个插件动态的重新注册appid就能够实现了。前提是使用本地打包的方式,目前已测试能够重新注册,现在在等申请另外一个商户号进行完整测试。

  • marting

    问下兄台怎么实现的?可以分享下吗?我也遇到了这种问题。

    2018-01-15 16:05

  • JRay

    回复 marting:上面回答大概说了嘛,具体的我还没有找到其他商户号来测试的。你要是有多的商户号我把方法告诉你你先测试一下吗,加我QQ我给你说:1206887665

    2018-01-16 09:48

marting

marting

楼主后面实现了吗?

小资电脑

小资电脑

其实呢,你们觉得真的有必要申请多个商户号吗?这种方案能确保不会出现纠纷吗?万一出现纠纷你凭什么原始数据来核查问题呢?

如果我的APP有这需求,那么我会用一个账户收账,然后定期对账后做二次分配。

  • marting

    出现这种需求一般是做的是对b端的系统吧,每个经销商或代理自己在这个平台有管理

    2018-01-16 08:56

  • 小资电脑

    不影响APP总的运营方做对账和二次分配。

    2018-01-16 10:15

  • marting

    那不一定,如果是平台,没问题,因为就推自己的app,如果是对多级b的,每个b端都想收到自己的账号,如果直接到总帐,每次都分发这个对平台风险高。而且b用户体验也没那么好。

    2018-06-26 09:42

  • 小资电脑

    回复 marting:那就类似beecloud,每个b用户自己申请单独的微信和支付宝收款账号,费用不经过平台,只有数据经过平台。

    2018-06-27 22:52

  • 3***@qq.com

    分账这个东西是需要公司有支付业务许可证的,不然钱直接到公司账上再分账就是违法行为

    2019-08-19 14:37

marting

marting

微信的有解决办法了么?

1***@qq.com

1***@qq.com

配置多个微信appid是没有意义的,你的打包appid 包名必须与微信支付那边一致,否则唤不起微信支付,你弄多个是没有意义的,调起微信支付也会检查是否合法

  • 叶耳朵

    多个微信公众平台的包名都一致不就行了?

    2020-07-09 21:13

该问题目前已经被锁定, 无法添加新回复