企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 支付方法文档说明 > 1.目前框架支付方法集成了app支付宝支付,app微信支付两大板块。其中提供的方法包括,签名、验证异步回调结 > 果、生成异步回调返回值。 > 2.支付宝支付和微信支付都单独提供了签名,验证异步回调方法。同时也提供了签名和验证异步回调的公共方法, > 开发者在没有特殊要求的情况下,建议使用公共方法,这便于以后框架增加支付方式时开发者不需改动。 > 3.框架写了一个调用示例,在application/api/Tmpaydemo类中 > 4.支付宝app支付和微信app支付后端流程都是先生成签名,将签名返回给客户端,客户端发起支付,发起支付成功后将收到来自支付宝或微信的异步回调,验证异步回调正确性,如果异步回调正确,再进行业务操作,最后告知支付宝或微信成功收到异步回调。 * * * ### **获取支付宝支付相关配置方法** 1.直接使用getAlipayConfig()函数,该方法已经写在common函数库中 2.返回说明: alipay\_app\_id 支付宝提供的 APP\_ID alipay\_public\_key 支付宝公钥,由支付宝提供的RSA2公钥 alipay\_private\_key 自己的私钥,由商户自己生成的RSA2私钥 3.如果用户未配置则值为空 * * * ### **获取微信支付相关配置方法** 1.直接使用getWecatpayConfig()函数,该方法已经写在common函数库中 2.返回说明: ~~~ wechat_app_id 微信开放平台提供的APPID wechat_mch_id 微信支付商户号mch_id ,由微信开放平台提供 wechat_key API密钥 ,由微信开放平台提供 apiclient_cert 客户端证书文件 ,由微信开放平台提供的文件,(返回的是文件在服务器上的路径,不能通过网络获取,eg:/mnt/Wechatpayfile/apiclient_cert.pem) apiclient_key 客户端秘钥文件 ,由微信开放平台提供的文件,(返回的是文件在服务器上的路径,不能通过网络获取,eg:/mnt/Wechatpayfile/apiclient_cert.pem) ~~~ ## 3.如果用户未配置则值为空 ### **支付宝签名方法** 1.直接使用signAlipay($out\_trade\_no = 0,$total\_amount = 0,$notifyUrl = "",$subject = "商品标题")函数,该方法已经写在common函数库中 ~~~ 入参: $out_trade_no 订单号 必须 $total_amount 商品价格 单位 :分 币种:人民币 必须 $notifyUrl 异步回调地址 必须 $subject 商品标题 必须 返回值:如果签名失败返回false,签名成功返回一段签名后的字符串,可以不做任何修改客户端就能使用 ~~~ > **备注:** > 1:各平台签名所需配置已经由框架维护,在管理后台可以添加相应配置,开发者只需调用此方法即可,如果开发者本地测试,需要自己在管理后台添加相应配置 * * * ### **验证支付宝支付异步回调是否正确** 1.直接使用checkAlipayNotify()函数,该方法已经写在common函数库中 ~~~ * 入参:无 * 返回值:验证失败返回false。验证成功返回一个数组,格式如下: * [ "out_trade_no"=>"21231312", //订单号 "total_amount"=>1 //订单金额,单位分 ]; ~~~ > **备注:** > 1:该方法会直接接受支付宝异步回调返回的值,因此调用该方法之前不能将$\_POST里面的值做修改 > 2:验证成功表示交易成功,否则失败。开发者应该在业务代码中再验证一遍订单金额是否正确 > 3:各平台签名所需配置已经由框架维护,在管理后台可以添加相应配置,开发者只需调用此方法即可,如果开发者本地测试,需要自己在管理后台添加相应配置 * * * ### **生成微信签名方法** 1.直接使用signWechat($out\_trade\_no = 0,$total\_amount = 0,$notifyUrl = "",$subject = "商品标题")函数,该方法已经写在common函数库中 ~~~ 入参: $out_trade_no 订单号 必须 $total_amount 商品价格 单位 :分 币种:人民币 必须 $notifyUrl 异步回调地址 必须 $subject 商品标题 必须 返回值:如果签名失败返回false。签名成功返回一个数组转的json,数组格式如下: array(7) { ["appid"] => string(18) "wxf5434529e3d5f55c" ["noncestr"] => string(16) "0KJQGD8Sm9AAawFn" ["package"] => string(10) "Sign=WXPay" ["partnerid"] => string(10) "1518233991" ["prepayid"] => string(36) "wx14150211047841e41f7532623622978451" ["timestamp"] => int(1542178931) ["sign"] => string(32) "C0C4CB308E7EB88B01F519ECF5071764" } ~~~ > **备注:** > 1:各平台签名所需配置已经由框架维护,在管理后台可以添加相应配置,开发者只需调用此方法即可,如果开发者本地测试,需要自己在管理后台添加相应配置 * * * ### **验证微信支付异步回调是否正确** 1.直接使用checkWechatNotify()函数,该方法已经写在common函数库中 ~~~ 入参:无 返回值:验证失败返回false。验证成功返回一个数组,格式如下: [ "out_trade_no"=>"21231312", //订单号 "total_amount"=>1 //订单金额,单位分 ]; ~~~ > **备注:** > 1:验证成功表示交易成功,否则失败。开发者应该在业务代码中再验证一遍订单金额是否正确 > 2:各平台签名所需配置已经由框架维护,在管理后台可以添加相应配置,开发者只需调用此方法即可,如果开发者本地测试,需要自己在管理后台添加相应配置 * * * ### **生成支付签名公共方法,强烈建议使用** 1.直接使用paySign($type =0,$out\_trade\_no = 0,$total\_amount = 0,$notifyUrl = "",$subject = "商品标题")函数,该方法已经写在common函数库中 ~~~ 该方法是支付宝,微信支付签名的集合,将来如果新增其它支付方式,也会增加到里面 * 入参: $type 支付类型 1支付宝,2微信 必须 $out_trade_no 订单号 必须 $total_amount 商品价格 单位 :分 币种:人民币 必须 $notifyUrl 异步回调地址 必须 $subject 商品标题 必须 返回值:如果签名失败返回false。如果签名成功返回对应支付类型的签名结果: $type=1(支付宝)返回一段签名后的字符串,可以不做任何修改客户端就能使用: $type=2(微信)返回一个数组转的json,和微信官网demo返回的一样,数组格式如下: array(7) { ["appid"] => string(18) "wxf5434529e3d5f55c" ["noncestr"] => string(16) "0KJQGD8Sm9AAawFn" ["package"] => string(10) "Sign=WXPay" ["partnerid"] => string(10) "1518233991" ["prepayid"] => string(36) "wx14150211047841e41f7532623622978451" ["timestamp"] => int(1542178931) ["sign"] => string(32) "C0C4CB308E7EB88B01F519ECF5071764" } ~~~ > **备注:** > 1:各平台签名所需配置已经由框架维护,在管理后台可以添加相应配置,开发者只需调用此方法即可,如果开发者本地测试,需要自己在管理后台添加相应配置 * * * ### **验证支付异步回调是否正确公共方法,强烈建议使用** 1.直接使用checkNotify()函数,该方法已经写在common函数库中 ~~~ 该方法是支付宝,微信支付异步回调验证的集合,将来如果新增其它支付方式,也会增加到里面 入参:无 * 返回值:验证失败返回false。验证成功返回一个数组,格式如下: * [ "out_trade_no"=>"21231312", //订单号 "total_amount"=>1, //订单金额,单位分 "type"=>1, //类型,1代表支付宝回调,2代表微信回调 ]; ~~~ > **备注**: > 1:验证成功表示交易成功,否则失败。开发者应该在业务代码中再验证一遍订单金额是否正确 > 2:各平台签名所需配置已经由框架维护,在管理后台可以添加相应配置,开发者只需调用此方法即可,如果开发者本地测试,需要自己在管理后台添加相应配置 * * * ### **支付异步回调处理完成后返回第三方(支付宝,微信)的值** 1.直接使用returnNotify($type = 1)函数,该方法已经写在common函数库中 ~~~ 入参: $type 支付类型 1支付宝,2微信 返回值:该方法会直接返回第三方需要的异步回调返回值 ~~~