根据支付宝官方提供的文档的建议:

TIPS:这一步应在商户服务端完成,商户服务端直接将组装和签名后的请求串orderString传给客户端,客户端直接传给SDK发起请求。文档和Demo是为了示例效果在客户端实现。

商品的订单信息和签名应该放在服务端进行,将最好生成的orderString发送给客户端,客户端直接换起支付,处理好回调就ok。思路很简单,但实现却要下番功夫。

坑一:

如果以PHP为服务后台为例,官网是没有提供集成好的PHP运行DEMO,我们的处理方式是参展APPDemo里的思路,和官方文档的流程介绍,自己写一套方法。

坑二:

在整合商品信息biz_content的时候要主要几个字端:

1)method = “alipay.trade.app.pay";

注意:官方提供的PHP有给APP整合信息方法,但里面使用的是“alipay.trade.wap.pay",这个字端不适用于APP支付,这点要注意。

2)timestamp 的格式

注意:这里格式是年月日...到秒,并不是时间戳。

3)total_amount 的位数

注意:这里商品单价是精确到小数点后2位的,例如:7.00 和微信不同。

4)charset = utf-8

注意:这里“utf-8”要小写,不是大写。

坑三:

疯狂的报错

当接口写好后,服务端和终端进行联调,这里就比较蛋疼了。首先,过程很繁琐,不能本地模拟测试,只能由终端发起,查看返回的错误信息去寻找问题,很不好确定错误的位置。

下面是我们在开发中遇到错误代码以及解决方法,希望给你些有用的建议。

1)支付宝客户端返回6001错误信息或显示交易订单处理失败,请稍后再试。(ALI64)

原因:没有在合作伙伴身份中设置公钥。(注:接入支付宝需要在服务端设置应用私钥和支付宝公钥,在支付宝管理后台设置应用公钥和合作伙伴公钥,应用公钥与私钥即为自己通过openssl生成的公钥与私钥;支付宝公钥可通过支付宝管理后台得到,是固定值;合作伙伴公钥即为应用公钥)

2)支付繁忙ALI59

原因:主要情况为  amount等参数中  有特殊字符 导致, 在此处打个断点 po 一下相应的参数就好了

3)“暂时无法获取订单信息,请稍后再试”

原因:签名错误。没有严格按照文档里的签名方式,&sign=AD3,前面要用“&”和加密(encode)后的字符相连,并且后面不能带双引号“”。

4)支付宝调起出现 ALI40247 解决方案

原因:这里卡的实现最长。也找了很多文档。总结了一下错误的原因有几下几点:

A.没有APP支付权限导致

检查您使用的这个appid是否签约过APP支付这个接口的权限。如果没有签约看上面的《如何签约APP支付接口》。这里比较隐蔽。大多数以为申请通过就代表有了支付能力,其实还需再做一步签约。

B.请求支付编码问题和没有做url encode

编码:就是请求了utf-8 但是用了gbk的编码

encode:app支付接口(接口名称:alipay.trade.app.pay)对请求字符串的所有一级value(biz_content作为一个value)进行encode。

C.管理中心》我的应用》状态》(注意:)已上线才可以使用否则也会报这个错误

D.详细可参见地址https://openclub.alipay.com/read.php?tid=250&fid=2 官方提供的解决方案。

最后,希望你们一切顺利~

完。

客服端与服务端APP支付宝支付接口联调的那些坑的更多相关文章

  1. HTTP服务端JSON服务端

    HTTP服务端JSON服务端 最后更新日期:  2014-5-18 Author: Kagula 阅读前提: CMake工具的基本使用 内容简介: CPPCMS是个开源Web开发框架,通过它可以很容易 ...

  2. 恩布企业IM PC端,服务端公布 1.16 版本号

    恩布企业IM PC端,服务端公布1.16版本号,开源企业IM.免费企业即时通讯软件:主要版本号更新内容: 恩布服务端核心程序,添加进程守护保护机制,确保系统7*24持续稳定服务: 服务端添加内存数据库 ...

  3. ThinkPHP5.0 实现 app支付宝支付功能

    前几天做项目,要求要用到支付宝接口,第一次做,弄了好几天 各种坑啊,简单写一下我做支付宝支付的过程,希望对也是第一次做支付宝支付的童鞋有帮助, 不懂的可以先去支付平台看一下支付宝支付的文档,我是下的d ...

  4. python调用支付宝支付接口

    python调用支付宝支付接口详细示例—附带Django demo代码   项目演示: 一.输入金额 二.跳转到支付宝付款 三.支付成功 四.跳转回自己网站 在使用支付宝接口的前期准备: 1.支付宝公 ...

  5. python调用支付宝支付接口详细示例—附带Django demo代码

    项目演示: 一.输入金额 二.跳转到支付宝付款 三.支付成功 四.跳转回自己网站 在使用支付宝接口的前期准备: 1.支付宝公钥 2.应用公钥 3.应用私钥 4.APPID 5.Django 1.11. ...

  6. jetty 客服端 与服务端

    jetty 服务端,客服端有请求buffter 检查 默认4kb 4096 客服端 HttpClient client=new HttpClient(); client.setRequestBuffe ...

  7. app支付宝支付java服务端代码

    app支付java服务端生成支付单文档 public String aliPay(String amount,Map<String,Object> body){ //实例化客户端 Alip ...

  8. 【转】京东金融App端链路服务端全链路压测策略

    京东金融移动端全链路压测历时三个月,测试和服务端同学经过无数日日夜夜,通宵达旦,终于完成了移动端链路的测试任务.整个测试有部分涉及到公司敏感数据,本文只对策略部分进行论述. 1.系统架构与策略 在聊性 ...

  9. Android 网络交互之移动端与服务端的加密处理

    在开发项目的网络模块时,我们为了保证客户端(Client)和服务端(Server)之间的通信安全,我们会对数据进行加密. 谈到网络通信加密,我们可以说出:对称加密,非对称加密,md5单向加密,也能提到 ...

随机推荐

  1. C# DataGridView中单元格Cell改变事件

    DataGridView控件中的各种事件都无法直接响应Cell中内容的变化,包括KeyPress等事件,可以采用下面方法 private void dataGridViewBarcode_Editin ...

  2. 【算法python实现】 -- 不同路径

    原题:https://leetcode-cn.com/problems/unique-paths/ 问题描述 n行m列的表格,从a[0][0]出发,每次只能右移一步或者下移一步,求到a[n-1][m- ...

  3. GC日志时间分析

    在GC日志里,一条完整的GC日志记录最后,会带有本次GC所花费的时间,如下面这一条新生代GC: [GC [DefNew: 3298K->149K(5504K), secs] [Times: us ...

  4. C#6.0语言规范(六) 转换

    转换能够被视为是一个特定类型的表达式.转换可能会导致给定类型的表达式被视为具有不同的类型,或者它可能导致没有类型的表达式获取类型.转换可以是隐式或显式的,这决定了是否需要显式转换.例如,从类型int到 ...

  5. JS生成某个范围的随机数【四种情况详解】

    JS没有现成的函数,能够直接生成指定范围的随机数. 但是它有个函数:Math.random()  这个函数可以生成 [0,1) 的一个随机数. 利用它,我们就可以生成指定范围内的随机数. 而涉及范围的 ...

  6. Oracle SQL Developer连接报错以及链接oracle的sqlplus出现协议适配器错误

    之前用的好好的Oracle SQL Developer,不知道是不是匆忙关闭软件啥东西没保存或是删了什么东西,今天突然用不了的. 大清早的,打开Oracle SQL Developer,就给我一个惊喜 ...

  7. String s=“dd”和String s=new String("dd")区别

    Java中String s="dd"的话会先检查常量池中是否有"dd"这个字符串,如果没有则创建一个,然后将s指向字符串的地址,而new String(&quo ...

  8. JS: 数组的循环函数

    JS 数组相关的循环函数,用得挺多,所以有些坑还是要去踩一下,先来看一道面试题. 注意:下面提到的不改变原数组仅针对基本数据类型. 面试题 模拟实现数组的 map 函数. 心中有答案了吗?我的答案放在 ...

  9. Linux CPU实时监控工具

    注:ubuntu需要安装sysstat: sudo apt install sysstat [root@testDb ~]# mpstat 1 10    ---显示操作系统内核版本 以及硬件配置   ...

  10. 常用处理数据用法es6 语法糖总结

    一 循环(数组 ,集合)   1 forEach-----------可以遍历得到vaue和index   const arr = ['red', 'green', 'blue'];arr.forEa ...