GitHubhttps://github.com/RunnerLee/...支持名称网关支持动作支持回调备注alipay_app支付宝APP支付支付/支付查询/退款支付alipay_qr支付宝扫码支付支付/支付查询/退款支付alipay_wap支付宝手机网站支付支付/支付查询/退款支付alipay_web支付宝PC网站支付支付/支付查询/退款支付wechat_app微信APP支付支付/支付查询/退款支付/退款查询支付通知/退款通知wechat_h5微信H5支付支付/支付查询/退款/退款查询支付通知/退款通知内置抓拍支付链接功能wechat_mina微信小程序支付支付/支付查询/退款/退款查询支付通知/退款通知wechat_官方微信公众号支付/支付查询/退款/退款查询支付通知/退款通知wechat_qr微信扫码支付支付/支付查询/退款/退款查询支付通知/退款通知老版本union_app银联网页支付支付通知老版本paypal_express_checkoutPayPal快递结账支付/支付查询paymentnotificationunstable介绍在对接第三方支付时,尤其是需要对接多个第三方支付时,需要阅读第三方文档,然后花费大量时间组装调试参数,比如调用第三方下订单并创建付款。如需同时接入微信和支付宝支付,需要领取证件。可想而知很麻烦(其实还好..hhh..)。该组件将与第三方的通信分为三个部分:request,request,主动调用第三方response,response,主动调用第三方获取的response通知,notification,各种第三方通知。每个部分部分是不同的动作,每个动作绑定一个固定的表格(Form),每个表格的内容是固定的。比如它主动调用第三方下单创建支付(ChargeRequest),他使用的表单是ChargeRequestForm。填写表单后,传入组件,组件即可处理参数,调用第三方支付。这样,你只需要了解组件的表单内容,就可以一劳永逸的接入多个第三方支付(不存在的hhh)。使用这里我们以支付宝PC网站支付为例。如果需要使用其他支付网关,只需修改实例化Cashier时传入的$gateway即可。注意组件使用的基本货币单位是美分'xxxx','app_private_key'=>'xxxxx','alipay_public_key'=>'xxxxx',];//创建实例,传入网关$cashier=newCashier('alipay_web',$config);创建付款'151627101400000071','subject'=>'testing','amount'=>1,'currency'=>'CNY','description'=>'testingdescription','return_url'=>'https://www.baidu.com','expired_at'=>'2018-01-2319:00:00',];$form=$cashier->charge($data);//以laravel为例returnredirect($form->get('charge_url'));查询支付query(['order_id'=>'151627101400000071',]);var_dump('付费'===$form->get('状态'));接收通知notify('charge');var_dump('paid'===$form->get('status'));var_dump($form->get('trade_sn'));//获取第三方交易号refundrefund(['order_id'=>'151627101400000071','refund_id'=>'3151627101400000071','total_amount'=>1,'refund_amount'=>1,]);表单及字段说明ChargeRequestForm字段名称为必填项字段说明备注order_id为订单号subject为订单标题amount为订单金额注意部分支付渠道有金额在线限制货币为订单货币注意支付渠道支付描述为订单支付渠道的简单说明会有不同的长度限制user_ip没有用户IPreturn_url没有回调地址必须填写Web类型的支付渠道show_url没有显示地址body没有订单详情我应该删除这个参数expired_at没有过期时间unixtimestampcreated_at没有创建时间unixtimestamp,没想到,连这个鬼??其他的还在补充中...FAQQ:和其他SDK相比有什么优势?A:无论标榜多么优雅好用的SDK,大部分都是需要你根据第三方的参数名来传入参数,所以难免要看文档,难免做代码中有很多处理。我想要的是,从数据库中取出订单后,做一次处理,解决多次支付的接入。Q:第三方支付文档是不是完全不需要看?是的?A:没有,建议还是看一下,组件中的一些支付(比如微信)需要传入一些特殊的参数。该组件只是帮助您解决麻烦的调用问题。许可证麻省理工学院
