SDK - 本地支付
请求参数
| 参数名称 | 类型 | 是否必填 | 参与签名 | 参数说明 |
|---|---|---|---|---|
| pay_memberid | String | 是 | 是 | 平台分配商户号 |
| pay_orderid | String | 是 | 是 | 上送订单号唯一, 字符长度 20 |
| pay_applydate | String | 是 | 是 | 提交时间, 时间格式:2016-12-26 18:18:18 |
| pay_bankcode | String | 是 | 是 | 银行编码, 参考后续说明:901 |
| pay_notifyurl | String | 是 | 是 | 服务端返回地址.(POST 返回数据) |
| pay_callbackurl | String | 是 | 是 | 页面跳转返回地址(POST 返回数据) |
| pay_amount | String | 是 | 是 | 商品金额 |
| pay_md5sign | String | 是 | 否 | 请看 MD5 签名字段格式 |
| pay_currency | String | 是 | 否 | 币种代码,大写字母 (USD) |
| pay_url | String | 是 | 否 | 网站URL, 需提交审核、带http(s):// |
| pay_type | String | 是 | 否 | 本地支付固定值:apm |
| pay_method | String | 否 | 否 | 支付方式列表,不传则跳转收银台 如 alipay |
+pay_productname | String | 否 | 否 | 商品信息,参数由下列一组数据,通过JSON格式组成,注意参数名大小写敏感。本字段以JSON数组字符串来填值。示例:[{"sku":"123456789","productName":"MacBook Pro","productImage":"产品图片地址","attributes":"Size:US8 Color:blue","price":"11000.00","quantity":"1"},{"sku":"9876543231","productName":"IPhone 12","productImage":"产品图片地址","attributes":"Size:US8 Color:blue","price":"11000.00","quantity":"1"}] |
| 「sku | String | 否 | 否 | 商品编号 (唯一) |
| 「productName | String | 是 | 否 | 产品名称 |
| 「productImage | String | 否 | 否 | 产品图片URL |
| 「attributes | String | 否 | 否 | 产品属性 |
| 「price | String | 是 | 否 | 产品价格 |
| 「quantity | String | 是 | 否 | 产品数量 |
| pay_firstname | String | 是 | 否 | 账单名字 |
| pay_lastname | String | 是 | 否 | 账单姓氏 |
| pay_street_address1 | String | 否 | 否 | 账单地址1 |
| pay_street_address2 | String | 否 | 否 | 账单地址2 |
| pay_city | String | 否 | 否 | 账单城市 |
| pay_postcode | String | 否 | 否 | 账单邮编 |
| pay_state | String | 否 | 否 | 账单州/省 |
| pay_country_iso_code_2 | String | 是 | 否 | 账单国家 |
| pay_email_address | String | 是 | 否 | 账单邮箱 |
| pay_telephone | String | 是 | 否 | 账单电话 |
| shipping_firstname | String | 否 | 否 | 收件名字 |
| shipping_lastname | String | 否 | 否 | 收件姓氏 |
| shipping_street_address1 | String | 否 | 否 | 收件地址1 |
| shipping_street_address2 | String | 否 | 否 | 收件地址2 |
| shipping_city | String | 否 | 否 | 收件城市 |
| shipping_state | String | 否 | 否 | 收件州/省 |
| shipping_postcode | String | 否 | 否 | 收件邮编 |
| shipping_country_iso_code_2 | String | 否 | 否 | 收件国家 |
| shipping_telephone | String | 否 | 否 | 收件电话 |
| pay_ip | String | 是 | 否 | 用户IP地址 |
| pay_useragent | String | 是 | 否 | 用户浏览器信息 |
| pay_language | String | 是 | 否 | 语言 |
| system | String | 是 | 否 | 网站系统, 如:Shopyy/Shopline |
请求支付返回参数
| 参数名称 | 类型 | 参数说明 |
|---|---|---|
| status | Int | status = 0:SUCCESS status = 1:3d支付跳转 status = 2:failed |
| msg | String | 下单成功 or 下单失败 |
| url | String | 3d支付跳转地址 |
返回示例
Transaction successful : {
"status": 0,
"msg": "transaction success"
}
Transaction failed : {
"status": 2,
"msg": "transaction failed"
}
Redirect/3ds payment successful : {
"status": 1,
"url": "redirectUrl"
}
3DS验证
跳转支付和直接信用卡支付需要3DS验证
同步返回:(application/x-www-form-urlencoded)
| 参数名称 | 类型 | 是否必填 | 参数说明 |
|---|---|---|---|
| paymentStatus | String | 是 | Succeeded: 成功 Fail:失败 Processing:处理中 |
| orderID | String | 是 | 订单号 |
示例
同步返回:
https://www.xxxx.com/callback.html?paymentStatus=succeeded&orderID=1001
异步返回:(application/x-www-form-urlencoded)
| 参数名称 | 类型 | 是否必填 | 参数说明 |
|---|---|---|---|
| memberid | String | 是 | 商户 ID |
| orderid | String | 是 | 商户订单号 |
| amount | String | 是 | 提交的订单金额 |
| true_amount | String | 是 | 买家实际付款的金额 |
| currency | String | 是 | 币种 |
| transaction_id | String | 是 | 平台订单号 |
| returncode | String | 是 | “00” 为成功 "2":为失败 |
| datetime | String | 是 | 交易时间,格式:20220419000114 |
| sign | String | 否 | 请看验证签名字段格式 |
| attach | String |
Demo
require_once 'vendor/autoload.php';
use Jpay\PaymentSDK\JpayPaymentSDK;
$sdk = new JpayPaymentSDK(
'your_merchant_id',
'your_secret_key',
'apm', // apm
'true' // true 或者 false, 默认 true(开发环境)
);
//下面只是示例,真正需要传的参数看上面的参数要求来传
$paymentData = [
'pay_orderid' => 'your pay orderid',
'pay_notifyurl' => 'https://your-domain.com/notify',
'pay_callbackurl' => 'https://your-domain.com/callback',
'pay_amount' => '100.00',
'pay_currency' => 'USD',
'pay_firstname' => 'John',
'pay_lastname' => 'Doe',
'pay_email_address' => '[email protected]',
'pay_telephone' => '1234567890',
'pay_country_iso_code_2' => 'US',
'pay_productname' => 'Test Product'
];
$result = $sdk->payment($paymentData);