问题
这几天在做APP支付,刚接手的时候真的是头疼啊
支付宝
- ALI38173 错误代码
- ALIN10146 错误代码
微信
- payment微信:-1 错误代码
场景
前端使用uniapp
进行开发,需要增加APP支付
,后端使用PHP
,在此条件下进行开发
解决
uni.requestPayment
这个是APP向支付宝
、微信
发起请求的API:uni.requestPayment({ provider: "", // wxpay alipay 平台 orderInfo: "", // 订单数据 success: function(res){ console.log(res); console.log("成功支付"); }, fail: function (res){ console.log(res) console.log("支付失败") } })
其中
provider
我们填写wxpay
或alipay
,这样就会调起相应的APP,而orderInfo
是由我们后端代码生成的数据,这里就不多做介绍..支付宝 ALI38173 错误代码
uni.requestPayment 传递参数错误
我一开始遇到的是这个错误,查了很多依旧没有解决,偶然间发现
orderInfo
这个地方传递的值错了:
alipay_sdk=alipay-sdk-java-dynamicVersionNo&app_id=2018030902340000&biz_content=%7B%22body%22%3A%22%25E9%25A2%2584%25E7%25BA%25A6%25E5%25AE%25A1%25E8%25BD%25A6%25E8%25B4%25B9%25E7%2594%25A8%22%2C%22out_trade_no%22%3A%22E201805251502141834984962%22%2C%22product_code%22%3A%22QUICK_MSECURITY_PAY%22%2C%22subject%22%3A%22%25E9%25A2%2584%25E7%25BA%25A6%25E5%25AE%25A1%25E8%25BD%25A6%25E8%25B4%25B9%25E7%2594%25A8%22%2C%22timeout_express%22%3A%2230m%22%2C%22total_amount%22%3A%220.01%22%7D&charset=GBK&format=json&method=alipay.trade.app.pay¬ify_url=http%3A%2F%2Fwww.alipay.com%2F&sign=aX2Cx1lA6uu5y4%2F%2FgA8nO6y0ADAp2D7yY4ZE9Hx3VfC8iWAHOvalrkLv3qknTkvoQo0fXt9whyvJbHIs8Pas%2FtVb1nSP9azfYG4T2gOi2EEa542JonkLg4fOnEdL8FMJhMYDXVrmP2gcjwUIhGd8J5E4gN2U9yocNuQ2FEeajmXlYfX7YdxbChqHmTq0JHJ9g%2FGUMKs39XX7Obp%2F4iDiVpO24s3AgdMrm0v0wW9DKgLGYAwq1U0qemyRZ%2B55UNyoZwmJBvqP3mBhtFN0%2BxEKvDv8PFT%2BiFZFtKCpIjGjnNcHLANenD1eGoQwq7nTyJrgSTlzX8v7TFb%2BnCmYoGGjnQ%3D%3D&sign_type=RSA2×tamp=2018-06-05+10%3A29%3A51&version=1.0
但是我后台传来的值是:
{"payinfo":"alipay_sdk=alipay-sdk-java-dynamicVersionNo&app_id=2018030902340000&biz_content=%7B%22body%22%3A%22%25E9%25A2%2584%25E7%25BA%25A6%25E5%25AE%25A1%25E8%25BD%25A6%25E8%25B4%25B9%25E7%2594%25A8%22%2C%22out_trade_no%22%3A%22E201805251502141834984962%22%2C%22product_code%22%3A%22QUICK_MSECURITY_PAY%22%2C%22subject%22%3A%22%25E9%25A2%2584%25E7%25BA%25A6%25E5%25AE%25A1%25E8%25BD%25A6%25E8%25B4%25B9%25E7%2594%25A8%22%2C%22timeout_express%22%3A%2230m%22%2C%22total_amount%22%3A%220.01%22%7D&charset=GBK&format=json&method=alipay.trade.app.pay¬ify_url=http%3A%2F%2Fwww.alipay.com%2F&sign=aX2Cx1lA6uu5y4%2F%2FgA8nO6y0ADAp2D7yY4ZE9Hx3VfC8iWAHOvalrkLv3qknTkvoQo0fXt9whyvJbHIs8Pas%2FtVb1nSP9azfYG4T2gOi2EEa542JonkLg4fOnEdL8FMJhMYDXVrmP2gcjwUIhGd8J5E4gN2U9yocNuQ2FEeajmXlYfX7YdxbChqHmTq0JHJ9g%2FGUMKs39XX7Obp%2F4iDiVpO24s3AgdMrm0v0wW9DKgLGYAwq1U0qemyRZ%2B55UNyoZwmJBvqP3mBhtFN0%2BxEKvDv8PFT%2BiFZFtKCpIjGjnNcHLANenD1eGoQwq7nTyJrgSTlzX8v7TFb%2BnCmYoGGjnQ%3D%3D&sign_type=RSA2×tamp=2018-06-05+10%3A29%3A51&version=1.0"}
所以需要将
payinfo
的值取出来再进行传递
如果这个方法解决不了问题,再去这里(传送门)查看其他解决方法。
ALIN10146错误代码
- 使用了沙箱账号
使用了沙箱,但网关地址没有换成沙箱的地址
注意啊,沙箱的网关地址和正常的网关地址不是同一个
并且,使用沙箱进行测试支付时,需要使用沙箱支付宝APP(开发者平台下载),登陆的账号是提供的买家的账号,登陆商家的账号 会报这个错误
沙箱网关地址:
https://openapi.alipaydev.com/gateway.do
正常的网关地址:
https://openapi.alipay.com/gateway.do
- 使用了沙箱账号
对于
uniapp
来说需要使用正式的进行支付,否则也会出现该错误
链接: https://pan.baidu.com/s/1rl9E_H-ha91J21St-wLZtg 提取码: dni7 复制这段内容后打开百度网盘手机App,操作更方便哦
- APP服务端代码
链接: https://pan.baidu.com/s/1-iJL2WsCJWOYD-Z0RUT8Yw 提取码: ebx9 复制这段内容后打开百度网盘手机App,操作更方便哦
关于微信的,由于APP支付还没有申请下来,所以暂时不写,等做好再继续完善~~~