小猪CMS支付协调对接规范

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

小猪CMS支付协调对接规范
1、支付请求方式:
直接访问这个url即可
{pigcms::U('Alipay/pay/',array(参数))}
数组里面的参数解释
参数名称参数描述是否必填备注
token 公众号的标识是
wecha_id 微信用户的标识是
from 订单来源是首字母大写,为当前模块,控制
器名称,比如控制器是
ProductAction.class.php,那么这
里就是Product orderName 订单名称否不填写则使用当前时间戳
orderid 订单ID 是两者必填一个
single_orderid 单一订单ID 否
notOnline 是否显示在线支
否传1表示不显示在线支付

notOffline 是否显示线下支
否传1表示显示线下支付

2、您的订单表中必须有的字段
字段备注
paid 1表示已支付,0表示未支付
orderid 用于存储订单号,长度小于30,必须是字符串,不能是自增id,建议
订单前加应用名字
transactionid 长度小于150的字符串,用于存储第三方支付的订单号
paytype 长度30,字符串,用户存储支付方式
wecha_id 公众号粉丝openid
price 金额,单位元
third_id 第三方支付平台的订单ID,用于对帐。

(字段(varchar(100))),
与transactionid 只留一个即可
3、当支付成功后系统将该订单的paid设置为1,然后跳转到你写的控制器的payReturn函数
付款成功后同步跳转Wap:(跳转来的from参数)/payReturn
参数名称参数描述是否必有备注
token 公众号的标识是此三种参数为跳转到支付时的
内容原样返回wecha_id 微信用户的标识是
orderid 订单ID 是
engPayType 支付方式英文格式的标识
cnPayType 支付方式中文此参数被urlencode化
nohandle 是否异步处理过否如果有这个参数,标示支付后的
逻辑已经异步处理过了,
pareturn里面请务必不要重复处

a)货到付款或到店付款,目前只是做成了一种跳转,无实际处理内容,请各应用自行检查并记录保存下订单的方式。

b)平台支付属于支付接口处理的一部分,所以各应用无需顾及是否正在使用平台支付。

在此函数中进行支付成功后的处理
例如:
function payReturn(){
$orderid=$_GET['orderid'];
//根据订单号查出$order
if($order){//如果订单存在
//在这里判断如果支付过了,就进行处理,比如减少库存,发短信等
//如果没支付,则进入另外一个判断
}else{
exit('订单不存在');
}
}
4、微信支付的异步处理(只有微信支付异步处理)
对于微信支付比较特殊,微信支付后如果不点击完成则会导致付款成功但不被记录的情况。

异步处理也会自动把订单标注为已支付(paid=1),并记录支付方式和第三方订单号。

所以需要在org下新建一个类ThirdPay+您的action类名(比如:ThirdPayGroupon.class.php)里面有index函数,参数为(订单id,第三方支付名称,第三方支付订单id)
//特别要注意的是token和wecha_id要从订单里取出
参考ThirdPayGroupon.class.php 一定要判断是否支付过了
5、建议
因为支付返回同时存在同步返回和异步返回,所以可以把支付后的处理统一写到上面所提的文件中,然后在第三步中调用
比如
function payReturn(){
if(isset($_GET['nohandle'])){//异步处理过了,就不执行逻辑处理了
}else{
$orderid=$_GET['orderid'];
ThirdPayGroupon::index($out_trade_no);
}
}
6、附录
付款方式的英文标识全部为小写!目前已经有的:
1. alipay(支付宝)
2. weixin(微信支付)
3. tenpay(财付通[wap手机])
4. tenpayComputer(财付通[即时到帐])
5. yeepay(易宝支付)
6. allinpay(通联支付)
7. daofu(货到付款)
8. dianfu(到店付款)
9.chinabank(网银在线)。

相关文档
最新文档