php对接招商银行微信统一下单接口demo 对接使用国密SM2加密方式
因为招商银行的加密方式不同于微信/支付宝等出现了一个使用国密SM2withSM3的加密方式,这里我通过在网上寻找各种资料简单的写了一个demo 我使用的是thinkphp6框架 其他框架原理相同
第一步: 通过composer安装对应的拓展,这里我使用的是【lpilp】大神的开源算法git地址,具体方法
composer require lpilp/guomi
这里注意 php版本需要>=7.2同时开启gmp组件支持
第二步:通过招行获取相关参数信息
<?php
return [
'pay_config' => [
'get_url' => '', // 请求地址 主要是域名
'app_id' => '', // 招行提供 appid
'secrt' => '', // 招行提供 appscript
'merId' => '', // 商户号:
'userId' => '', // 收银员编号
'encoding' => 'UTF-8', // 文档对应
'version' => '0.0.1', // 文档对应
'signMethod' => '02', // 02 = SM2国密方式
'private_key' => '', // 私钥
'pub_key' => '', // 公钥
't_start' => '', // 公钥头
'orderBackUrl' => '' // 回调地址
]
];
第三步:进入正式的支付demo
<?php
declare(strict_types=1);
namespace app\xxxxx\controller;
// 引入 composer的国密算法
use Rtgm\sm\RtSm2;
use think\facade\Db;
// 公共类
use app\BaseController;
// 订单相关model
use app\common\model\xxxx as xxxxModel;/**
* @xk 招商银行支付
*/
class Unipay extends BaseController
{
/**
* @xk 进行付款预分配
* @method goPay
* @param array $order_data [description]
* @return [type] [description]
* @Version:V6.0
*/
public static function goPay($order_data = [])
{
$orderModel &#
发表评论 取消回复