omnipay-99bill

99bill driver for the Omnipay PHP payment processing library: 快钱支付SDK

Quick Start 快速开始

Omnipay is a framework agnostic, multi-gateway payment processing library for PHP 5.3+. This package implements WechatPay support for Omnipay.

Install 安装

Omnipay is installed via Composer. To install, simply add it to your composer.json file:

$ composer require zacksleo/omnipay-99bill -vvv

Purchase 发起支付

/* @var OmnipayBill99Gateway $gateway */ $gateway = OmnipayOmnipay::create('Bill99'); $gateway->setPrivateKey('the_app_private_key'); //私钥内容 $gateway->setReturnUrl('https://www.example.com/return'); $gateway->setNotifyUrl('https://www.example.com/return'); $gateway->setMchId('merchatn-id'); //商户号 $request = $gateway->purchase([ //支付人姓名,可以为空。 'payerName' => '', //支付人联系类型,1 代表电子邮件方式;2 代表手机联系方式。可以为空。 'payerContactType' => 1, //支付人联系方式,与payerContactType设置对应,payerContactType为1,则填写邮箱地址;payerContactType为2,则填写手机号码。可以为空。 'payerContact' => '2532987@qq.com', //商户订单号,以下采用时间来定义订单号,商户可以根据自己订单号的定义规则来定义该值,不能为空。 'orderId' => date('YmdHis') . mt_rand(1000, 9999), //订单金额,金额以“分”为单位,商户测试以1分测试即可,切勿以大金额测试。该参数必填。 'orderAmount' => 1, //商品名称,可以为空。 'productName' => 'product-name', //商品数量,可以为空。 'productNum' => '', //商品代码,可以为空。 'productId' => '55558888', //商品描述,可以为空。 'productDesc' => '', //扩展字段1,商户可以传递自己需要的参数,支付完快钱会原值返回,可以为空。 'ext1' => '', //扩展自段2,商户可以传递自己需要的参数,支付完快钱会原值返回,可以为空。 'ext2' => '', ]); /* @var OmnipayBill99MessagePurchaseResponse $response */ $response = $request->send(); $response->redirect(); exit;

处理支付回调

/* @var OmnipayBill99Gateway $gateway */ $gateway = Omnipay::create('Bill99'); $gateway->setPrivateKey('the_app_private_key'); //私钥内容 $gateway->setReturnUrl('https://www.example.com/return'); $gateway->setNotifyUrl('https://www.example.com/return'); /** * 先从快钱下载好.cer文件(假设为certificate.cer),然后使用以下命令生成pem文件,里面即为public key(certificate_publickey.pem) * openssl x509 -inform PEM -in certificate.cer -pubkey -noout > certificate_publickey.pem * @see https://stackoverflow.com/questions/28060159/how-to-extract-the-rsa-public-key-from-a-cer-and-store-it-in-a-pem-using-opens */ $gateway->setBill99PublicKey('99bill_publickey'); //从快钱下载并提取出的public key /* @var $request OmnipayBill99MessageCompletePurchaseRequest */ $request = $gateway->completePurchase(); $request->setParams(array_merge($_GET)); try { /* @var $response OmnipayBill99MessageCompletePurchaseResponse */ $response = $request->send(); if ($response->isPaid()) { $data = $response->getData(); /** * var_dump($data); * @todo 这里为支付成功的业务逻辑 * $data['orderId'] 订单号 * 订单金额 $data['orderAmount']/100, * 快钱交易号 $data['dealId'], */        /** 这里需要注意,如果同步回调和同步回调(两者均为GET)在同一处处理, * 需要通过一定方式区分是异步还是同步,两者返回信息不同,如用户登录状态($_SESSION[uid])         */        //异步回调demo,该返回值为快钱必需        die("<result>1</result><redirecturl>$url</redirecturl>");        //同步回调        // redirect跳转页面...    } else { // @todo 支付失败的业务逻辑 //异步回调demo,该返回值为快钱必需 die("<result>0</result><redirecturl>$url</redirecturl>"); } } catch (Exception $e) { // @todo 这里为支付异常业务逻辑 //异步回调demo,该返回值为快钱必需 die("<result>0</result><redirecturl>$url</redirecturl>"); }

Advance Config 其他配置

配置测试环境

$gateway->setTestMode(true); // 测试环境

版权声明:

1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。
2、网站不提供资料下载,如需下载请到原作者页面进行下载。
3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考学习用!
4、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。