开发注意事项

由群友整理的开发记录

开发记录:
一、payOrderTest测试方法目前已经测试通过微信的支付接口。
需要注意一下几点:
1、测试WX_JSAPI时需要预先通过其他途径获取到用户openID,并填写到extra参数中,这里填写的是我自己的,openId后端无法直接获取,只能通过微信内页面获取。

二、重要数据表说明
1、商户表:商户就是需要接入本交易中心的客户,商户ID需要和支付渠道绑定,一个商户可以拥有多个支付渠道;
2、支付渠道表:支付渠道表里记录了所有需要接入的支付渠道信息,一个支付渠道只能对应一个商户ID,如果需要多个商户公用一个渠道ID
,那么就需要重复的创建支付渠道,只是商户ID不同。比如一个公司一共有3个服务号需要接入支付,但是一个公司只能申
请一个支付商户,但是一个商户可以绑定多个AppID,所以这样就可以一个支付渠道对应多个商户了。该表的数据唯一性判定
标准就是:商户ID + 渠道ID(如:WX_JSAPI)

当渠道名称为WX时,支付渠道参数为:{“mchId”:”xxx”, “appId”:”xxx”, “key”:”xxx”, “certLocalPath”:”xxx”, “certPassword”:”xxx”}
其中:
mchId 为支付渠道商户ID;
appId为 对应的微信公众号appId;
certLocalPath 为从微信商户管理后台下载的证书然后保存到服务器上的路径,比如:/home/xxpay/service/cert/apiclient_cert.p12;证书只有在开发企业支付的时候使用,比如退款操作
key 貌似可以不需要;
certPassword 为商户生成证书的时候提示输入的证书密码,如果创建证书时没有输入,默认为商户号,也就是商户ID;

当渠道名称为ALIPAY时,支付渠道参数为:{“isSandbox”:1,”appid”: “xxx”, “private_key”: “xxx”, “alipay_public_key”: “xxx”}

二、接入测试可以参考:http://docs.xxpay.org/docs/deploy/40

三、微信公众号开发测试对域名要求很严格,具体表现为如下几点:
1、微信公众号发起支付的页面必须是公众号内页面,而且该页面必须是在微信公众号设置为授权页面,所以该页面必须是80端口,而且该页面也必须是JS调用授权目录。
2、微信商户后台可以配置最多5个支付授权页面,这5个页面也必须是80端口
3、微信公众号页面主要是负责获取用户的openId和access_token,这一点对php开发的服务基本不用关注,但是如果是java开发的前后端未分离的后台应用,如果端口是非80的就要注意了。
4、微信支付一旦获取到了openId和access_token等关键敏感信息后,在支付的过程中就和公众号的页面暂时没关系了;
5、一旦支付成功后,微信支付后台需要异步回调一个重定向页面,也就是redirect_URI,这个页面必须是微信公众号的左侧边栏的》公众号设置->功能设置下的“网页授权域名”下的页面,而且不能带任何端口号。