代码拉取完成,页面将自动刷新
coinpal payment SDK for PHP
$ composer require coinpal/coinpal-php
配置信息 以及实例化
$config = [
'debug'=>true,//调试模式
'version'=>'2',//版本号
'merchantNo'=>'商户编号',
'apiKey'=>'商户秘钥',
];
$payment = new \coinpal\Payment();
function getRequestId(){
return 'Q'.date('YmdHis').uniqid();
}
function orderNo() {
return 'D'.sprintf( '%04x%04x%04x%04x',
mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ),
mt_rand( 0, 0xffff ),
mt_rand( 0, 0x0fff ) | 0x4000
);
}
try{
$data['requestId'] = getRequestId();//请求流水号,每次请求需唯一
$data['merchantName'] = 'Cionpal';//收银台页面商户名
$data['orderNo'] = orderNo();
$data['orderCurrencyType'] = 'fiat';//币种类型 crypto 或者 fiat
$data['orderCurrency'] = 'USD';//订单币种
$data['orderAmount'] = '10.5';//订单金额
$data['orderDescription'] = 'Iphone 14';//订单描述 将用于特定收银台,页面展示
$data['payerIP'] = '192.168.0.1';//付款人设备IP
$data['notifyURL'] = 'https://www.order-test.cn/notify.php?order='.$data['orderNo'];//商户异步通知地址
$data['redirectURL'] = 'https://www.order-test.cn';//用户支付成功/支付过期后,前台页面回调地址。
$data['remark'] = 'Remark';//扩展字段,商户可自行定义。支付成功后,会原样返回。
$result = $payment->setMerchantNo($config['merchantNo'])->setVersion($config['version'])->setApiKey($config['apiKey'])->create($data);
echo "<pre>";
print_r($result);
echo "</pre>";
//保存gcid 和支付链接 并且发送到前端调用该地址
}catch ( \coinpal\PaymentException $e){
$payment->log($e);
//记录错误信息
echo $e->getMessage();
}
$payment = new \coinpal\Payment();
try{
$gcid = $result['reference'];//创建交易成功只有返回
$list = $payment->setMerchantNo($config['merchantNo'])->query($gcid);
print_r($list);
}catch ( \coinpal\PaymentException $e){
$payment->log($e);
//记录错误信息
echo $e->getMessage();
}
try{
//所有的状态更新都可以在这里操做
$params = $payment->setMerchantNo($config['merchantNo'])->setApiKey($config['apiKey'])->notify();
//业务逻辑查找当前订单交易情况
if($params['status'] == 'paid'){
//订单支付成功
//更新状态操做
}
$payment->log('支付成功');
echo 'success';
}catch ( \coinpal\PaymentException $e){
$payment->log($e);
//记录错误信息
echo $e->getMessage();
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。