APP支付踩过的坑

问题

这几天在做APP支付,刚接手的时候真的是头疼啊twemoji-1f632

  • 支付宝

    • 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我们填写wxpayalipay,这样就会调起相应的APP,而orderInfo是由我们后端代码生成的数据,这里就不多做介绍.. twemoji-1f4a6

  • 支付宝 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错误代码

    • 使用了沙箱账号
      使用了沙箱,但网关地址没有换成沙箱的地址
      注意啊,沙箱的网关地址和正常的网关地址不是同一个twemoji-2757twemoji-2757twemoji-2757
      并且,使用沙箱进行测试支付时,需要使用沙箱支付宝APP(开发者平台下载),登陆的账号是提供的买家的账号,登陆商家的账号 会报这个错误
      沙箱网关地址:
      https://openapi.alipaydev.com/gateway.do
      正常的网关地址:
      https://openapi.alipay.com/gateway.do

对于uniapp来说需要使用正式的进行支付,否则也会出现该错误

  • 调试软件
    下载这个,安装到手机,获得你的orderInfo的数据,然后在这里打开,就会发现可以支付~~ 记得沙箱就使用沙箱,正式就使用正式的~~

链接: https://pan.baidu.com/s/1rl9E_H-ha91J21St-wLZtg 提取码: dni7 复制这段内容后打开百度网盘手机App,操作更方便哦

  • APP服务端代码

链接: https://pan.baidu.com/s/1-iJL2WsCJWOYD-Z0RUT8Yw 提取码: ebx9 复制这段内容后打开百度网盘手机App,操作更方便哦

关于微信的,由于APP支付还没有申请下来,所以暂时不写,等做好再继续完善~~~

本博客所有文章如无特别注明均为原创。作者:止语复制或转载请以超链接形式注明转自 止语
原文地址《APP支付踩过的坑

相关推荐

网友评论(0)