• 杭州php接口开发之支付宝接口

  • 2014-12-12 22:10:11

    标签:新建网站 虚拟主机 杭州易生科技

        手机wap接口测试图

    最近比较忙,一直没有时间给大家发技术文章,为了补偿大家,把支付宝wap支付接口放给大家。感谢大家一直以来对我的关注和支持。下面说一下接入步骤。

1,首先是接口代码下载地址,两个地址都可以下载

1)更多产品中,打开快捷支付图标,选择技术集成里面有代码下载:https://b.alipay.com/newIndex.htm

 

2)相关接口资料下载地址:http://club.alipay.com/read-htm-tid-9976972.html

2,测试dmeo

     

 Wap接口支持两种签名方式,MD5rsa,现在先以MD5为列,后面介绍rsa的。这个接口有三种语言,目前就这三种语言demo,其他语言的话需要自己写下了。现在以php为例,其他语言的配置顺序也是一样的。

   

 1)找到alipayconfig这个文件,这个是一个配置文件,MD5需要在里面填写账号和key

打开后的页面,各个语言文件后缀名不一样,文件名都差不多的

2)配置好这个页面就可以测试支付了,如果想支付后再返回到一个页面,那就把call_back_url这个参数设置下,在alipayapi页面

这里需要注意的是javac#需要导入工程,这里就不示范了,如果有编译问题,可以自己排查下,dmeo本身不存在这个问题的。我们建议真机测试,用火狐上的模拟手机浏览器也可以,如果模拟环境报错,再用真机测试下,输入index页面地址就可以测试了

点“确认”就到收银台了


支付成功后会返回到call_back_url页面

我这里设置的百度,支付后返回到了百度的页面

这个是地址栏中的返回参数

到这里就MD5就测试ok了,如果你在测试中出现“缺少参数”等错误就是配置的问题,重新配置测试。


下面来说下rsa的测试过程,我这里要把phpjavac#语言分开,只有php的公私钥使用

比较特殊,其他语言的一样的,那我们说下phprsa签名过程

1)先生成php rsa签名用的公私钥,其实在规则文档中已经有写明的,但是很多商户还是在这方面出现问题,我觉得应该是文档写的还不够具体,那我这里一步一步演示下:

2)打开opensSL文件,打开bin

3)打开生成命令txt文件和bin下的opensSL.exe

4)这样就可以把生成命令输入到opensSL中了,三条命令输入后是这样滴:

红色框中的命令生成的从上到下的顺序的商户私钥pem文件和商户公钥pem文件绿色框中的是转过pkcs8的商户私钥

5)然后我们返回到bin里面看下

里面多了两个红色框中的文件,绿色是我整理后的文件,可以先不看,rsa_private_key.pem这个是我们php接口key文件中需要的内容,把里面的内容原样放在key文件rsa文件中,注意复制进去的时候前后不要有空格rsa_public_key.pem这个文件中的内容是我们要上传的内容,打开这个文件

6)需要做的一步是把商户公钥格式改下:

删除文件头“-----BEGIN PUBLIC KEY-----”与文件尾“-----END   PUBLIC KEY-----”及空格、换

 

行。最后得到一行字符串并保存该txt文件为“public_key.txt”。样例就是这样滴:

 

因为去掉公钥中的开头和结尾注释的话比较长我这里把文件放小了,不是换行!真实中就

是一行的

是我之前绿色框中的rsa_public_key.txt文件了,这个文件到这里上传:

7)上传商户公钥路径:https://ms.alipay.com/index.htm--我的商家服务--账号信息(右上角)--密钥管理(注意不要点到b.alipay.com

8)上传后,从页面上复制下来支付宝公钥,复制下来的支付宝公钥中有两个空格的,把空格去掉并换成换行,加上前后缀放在key文件中的支付宝公钥pem文件中即可。

整理好后类似这样的格式,注意:前后都是没有空格的,放在key文件中

9)现在就可以准备测试了,还有一步就是配置config文件,账号配置,key就不用配置,把之前改成MD5的参数改回0001,用默认的值

然后就可以测试了,测试流程跟MD5一样的,这里就不再截图了,如果在支付的过程中出现缺少参数等错误,还是配置的问题 ,重新生成公私钥重新上传。

我们来讲下javac#rsa测试过程,


我们看下4)这个图

ava  c#php唯一不同的就是秘钥的格式,java用绿框中的转过pkcs8的商户私钥,商户公钥上传地址和格式跟php的是一样的,复制下来支付宝公钥后,去掉空格保存成一行放在demo中,其他的就每有什么不同了,好的,大家可以测试下了。

 

在调试过程中遇到最多的就是“参数缺失”这个已经讲过了,是配置的问题,单独测试dmeo一般是token没有获取到,如果已经集成到自己的代码中了,最好把请求参数打印出来看下。

 

 

还有一个就是验签失败,同步的验签失败主要有三个原因:一个是支付宝公钥错误,一个是自定义参数(尤其是thinkphp,这个系统会自己加个_url_这个参数影响签名),还有一个就是乱码,这些都可以一个个排查,比较难排查的是异步notify url验签失败,当然这个原因也涉及到支付宝公钥错误,自定义参数和乱码,还有一个就是顺序,验签的时候需要排序的,因为hashmap的功能根据jdk版本不同他也不一样,所以有些商户会出现验签的参数顺序的倒序的,这个可以把排序后的参数打印出来检查很容易发现,换linkhashmap或者其他方法都可以,最后要告诉大家,我们的dmeo中有日志语句,在类文件中的alipaynotify页面,注释去掉后,根据日志中的内容调试。

易生科技www.eeeson.com /PHP外包/开发/定做/企业应用/CMS/CRM/OA/美工设计/网站logo/java定做/flash/运维,八年企业应用 PHPZendFramework开发经验团队开发/程序/美工/技术大牛,纯源码,手工,保证程序质量,稳定高效....
http://www.eeeson.com
备注:杭州地区项目长久可以面谈.

联系QQ:1176818244.

文章可以分享给更多人哦
上一篇 :什么是虚拟主机,域名,二级域名,DNS解析 返回列表 :下一篇
Copyright © 2008 - 2013 杭州易生科技 All Right Reserved. 
易生在线客服
网站建设
企业网站 点击这里
网上商城 点击这里
移动互联网
手机网站 点击这里
微信网站 点击这里
网络营销
在线咨询 点击这里
售后服务
在线咨询 点击这里

杭州易生科技官方QQ1176818244

杭州易生科技专业外包:
网页设计、网站建设、外包开发、接口开发维护、企业OA等服务。