Skip to content

JSAPI下单并授权

商户系统先通过预签约生成token或者用户免密签约后,再调用该接口在微信支付服务后台生成预支付交易单,返回正确的预支付交易会话标识后再按JSAPI方式调起支付。

请求参数类型描述
jsonobject声明请求的JSON数据结构
sp_appidstring服务商应用ID
sp_mchidstring服务商户号
sub_appidstring子商户/二级商户应用ID
sub_mchidstring子商户号/二级商户号
descriptionstring商品描述
out_trade_nostring商户订单号
time_expirestring交易结束时间
attachstring附加数据
notify_urlstring通知地址
goods_tagstring订单优惠标记
settle_infoobject结算信息
profit_sharingboolean是否指定分账
support_fapiaoboolean电子发票入口开放标识
amountobject订单金额
totalnumber总金额
currencystring货币类型
payerobject支付者
sp_openidstring用户服务标识
sub_openidstring用户子标识
detailobject优惠功能
cost_pricenumber订单原价
invoice_idstring商品小票ID
goods_detailobject[]单品列表
merchant_goods_idstring商户侧商品编码
wechatpay_goods_idstring微信支付商品编码
goods_namestring商品名称
quantitynumber商品数量
unit_pricenumber商品单价
scene_infoobject场景信息
payer_client_ipstring用户终端IP
device_idstring商户端设备号
store_infoobject商户门店信息
idstring门店编号
namestring门店名称
area_codestring地区编码
addressstring详细地址
contract_infoobject签约授权信息
password_free_contract_idstring免密协议ID
php
$instance->v3->pay->partner->transactions->jsapiWithContract->postAsync([
  'json' => [
    'sp_appid' => 'wx8888888888888888',
    'sp_mchid' => '1230000109',
    'sub_appid' => 'wxd678efh567hg6999',
    'sub_mchid' => '1900000109',
    'description' => 'Image形象店-深圳腾大-QQ公仔',
    'out_trade_no' => '1217752501201407033233368018',
    'time_expire' => '2018-06-08T10:34:56+08:00',
    'attach' => '自定义数据',
    'notify_url' => 'https://www.weixin.qq.com/wxpay/pay.php',
    'goods_tag' => 'WXG',
    'settle_info' => [
      'profit_sharing' => true,
    ],
    'support_fapiao' => true,
    'amount' => [
      'total' => 100,
      'currency' => 'CNY',
    ],
    'payer' => [
      'sp_openid' => 'oUpF8uMuAJO_M2pxb1Q9zNjWeS6o',
      'sub_openid' => 'oUpF8uMuAJO_M2pxb1Q9zNjWeS6o',
    ],
    'detail' => [
      'cost_price' => 608800,
      'invoice_id' => '微信123',
      'goods_detail' => [[
        'merchant_goods_id' => '1246464644',
        'wechatpay_goods_id' => '1001',
        'goods_name' => 'iPhoneX 256G',
        'quantity' => 1,
        'unit_price' => 528800,
      ],],
    ],
    'scene_info' => [
      'payer_client_ip' => '14.23.150.211',
      'device_id' => '013467007045764',
      'store_info' => [
        'id' => '0001',
        'name' => '腾讯大厦分店',
        'area_code' => '440305',
        'address' => '广东省深圳市南山区科技中一道10000号',
      ],
    ],
    'contract_info' => [
      'password_free_contract_id' => '201710180325670965',
    ],
  ],
])
->then(static function(\Psr\Http\Message\ResponseInterface $response) {
  print_r(json_decode((string) $response->getBody(), true));
})
->wait();
php
$instance->chain('v3/pay/partner/transactions/jsapi-with-contract')->postAsync([
  'json' => [
    'sp_appid' => 'wx8888888888888888',
    'sp_mchid' => '1230000109',
    'sub_appid' => 'wxd678efh567hg6999',
    'sub_mchid' => '1900000109',
    'description' => 'Image形象店-深圳腾大-QQ公仔',
    'out_trade_no' => '1217752501201407033233368018',
    'time_expire' => '2018-06-08T10:34:56+08:00',
    'attach' => '自定义数据',
    'notify_url' => 'https://www.weixin.qq.com/wxpay/pay.php',
    'goods_tag' => 'WXG',
    'settle_info' => [
      'profit_sharing' => true,
    ],
    'support_fapiao' => true,
    'amount' => [
      'total' => 100,
      'currency' => 'CNY',
    ],
    'payer' => [
      'sp_openid' => 'oUpF8uMuAJO_M2pxb1Q9zNjWeS6o',
      'sub_openid' => 'oUpF8uMuAJO_M2pxb1Q9zNjWeS6o',
    ],
    'detail' => [
      'cost_price' => 608800,
      'invoice_id' => '微信123',
      'goods_detail' => [[
        'merchant_goods_id' => '1246464644',
        'wechatpay_goods_id' => '1001',
        'goods_name' => 'iPhoneX 256G',
        'quantity' => 1,
        'unit_price' => 528800,
      ],],
    ],
    'scene_info' => [
      'payer_client_ip' => '14.23.150.211',
      'device_id' => '013467007045764',
      'store_info' => [
        'id' => '0001',
        'name' => '腾讯大厦分店',
        'area_code' => '440305',
        'address' => '广东省深圳市南山区科技中一道10000号',
      ],
    ],
    'contract_info' => [
      'password_free_contract_id' => '201710180325670965',
    ],
  ],
])
->then(static function(\Psr\Http\Message\ResponseInterface $response) {
  print_r(json_decode((string) $response->getBody(), true));
})
->wait();
php
$instance['v3/pay/partner/transactions/jsapi-with-contract']->postAsync([
  'json' => [
    'sp_appid' => 'wx8888888888888888',
    'sp_mchid' => '1230000109',
    'sub_appid' => 'wxd678efh567hg6999',
    'sub_mchid' => '1900000109',
    'description' => 'Image形象店-深圳腾大-QQ公仔',
    'out_trade_no' => '1217752501201407033233368018',
    'time_expire' => '2018-06-08T10:34:56+08:00',
    'attach' => '自定义数据',
    'notify_url' => 'https://www.weixin.qq.com/wxpay/pay.php',
    'goods_tag' => 'WXG',
    'settle_info' => [
      'profit_sharing' => true,
    ],
    'support_fapiao' => true,
    'amount' => [
      'total' => 100,
      'currency' => 'CNY',
    ],
    'payer' => [
      'sp_openid' => 'oUpF8uMuAJO_M2pxb1Q9zNjWeS6o',
      'sub_openid' => 'oUpF8uMuAJO_M2pxb1Q9zNjWeS6o',
    ],
    'detail' => [
      'cost_price' => 608800,
      'invoice_id' => '微信123',
      'goods_detail' => [[
        'merchant_goods_id' => '1246464644',
        'wechatpay_goods_id' => '1001',
        'goods_name' => 'iPhoneX 256G',
        'quantity' => 1,
        'unit_price' => 528800,
      ],],
    ],
    'scene_info' => [
      'payer_client_ip' => '14.23.150.211',
      'device_id' => '013467007045764',
      'store_info' => [
        'id' => '0001',
        'name' => '腾讯大厦分店',
        'area_code' => '440305',
        'address' => '广东省深圳市南山区科技中一道10000号',
      ],
    ],
    'contract_info' => [
      'password_free_contract_id' => '201710180325670965',
    ],
  ],
])
->then(static function(\Psr\Http\Message\ResponseInterface $response) {
  print_r(json_decode((string) $response->getBody(), true));
})
->wait();
php
$response = $instance->v3->pay->partner->transactions->jsapiWithContract->post([
  'json' => [
    'sp_appid' => 'wx8888888888888888',
    'sp_mchid' => '1230000109',
    'sub_appid' => 'wxd678efh567hg6999',
    'sub_mchid' => '1900000109',
    'description' => 'Image形象店-深圳腾大-QQ公仔',
    'out_trade_no' => '1217752501201407033233368018',
    'time_expire' => '2018-06-08T10:34:56+08:00',
    'attach' => '自定义数据',
    'notify_url' => 'https://www.weixin.qq.com/wxpay/pay.php',
    'goods_tag' => 'WXG',
    'settle_info' => [
      'profit_sharing' => true,
    ],
    'support_fapiao' => true,
    'amount' => [
      'total' => 100,
      'currency' => 'CNY',
    ],
    'payer' => [
      'sp_openid' => 'oUpF8uMuAJO_M2pxb1Q9zNjWeS6o',
      'sub_openid' => 'oUpF8uMuAJO_M2pxb1Q9zNjWeS6o',
    ],
    'detail' => [
      'cost_price' => 608800,
      'invoice_id' => '微信123',
      'goods_detail' => [[
        'merchant_goods_id' => '1246464644',
        'wechatpay_goods_id' => '1001',
        'goods_name' => 'iPhoneX 256G',
        'quantity' => 1,
        'unit_price' => 528800,
      ],],
    ],
    'scene_info' => [
      'payer_client_ip' => '14.23.150.211',
      'device_id' => '013467007045764',
      'store_info' => [
        'id' => '0001',
        'name' => '腾讯大厦分店',
        'area_code' => '440305',
        'address' => '广东省深圳市南山区科技中一道10000号',
      ],
    ],
    'contract_info' => [
      'password_free_contract_id' => '201710180325670965',
    ],
  ],
]);
print_r(json_decode((string) $response->getBody(), true));
php
$response = $instance->chain('v3/pay/partner/transactions/jsapi-with-contract')->post([
  'json' => [
    'sp_appid' => 'wx8888888888888888',
    'sp_mchid' => '1230000109',
    'sub_appid' => 'wxd678efh567hg6999',
    'sub_mchid' => '1900000109',
    'description' => 'Image形象店-深圳腾大-QQ公仔',
    'out_trade_no' => '1217752501201407033233368018',
    'time_expire' => '2018-06-08T10:34:56+08:00',
    'attach' => '自定义数据',
    'notify_url' => 'https://www.weixin.qq.com/wxpay/pay.php',
    'goods_tag' => 'WXG',
    'settle_info' => [
      'profit_sharing' => true,
    ],
    'support_fapiao' => true,
    'amount' => [
      'total' => 100,
      'currency' => 'CNY',
    ],
    'payer' => [
      'sp_openid' => 'oUpF8uMuAJO_M2pxb1Q9zNjWeS6o',
      'sub_openid' => 'oUpF8uMuAJO_M2pxb1Q9zNjWeS6o',
    ],
    'detail' => [
      'cost_price' => 608800,
      'invoice_id' => '微信123',
      'goods_detail' => [[
        'merchant_goods_id' => '1246464644',
        'wechatpay_goods_id' => '1001',
        'goods_name' => 'iPhoneX 256G',
        'quantity' => 1,
        'unit_price' => 528800,
      ],],
    ],
    'scene_info' => [
      'payer_client_ip' => '14.23.150.211',
      'device_id' => '013467007045764',
      'store_info' => [
        'id' => '0001',
        'name' => '腾讯大厦分店',
        'area_code' => '440305',
        'address' => '广东省深圳市南山区科技中一道10000号',
      ],
    ],
    'contract_info' => [
      'password_free_contract_id' => '201710180325670965',
    ],
  ],
]);
print_r(json_decode((string) $response->getBody(), true));
php
$response = $instance['v3/pay/partner/transactions/jsapi-with-contract']->post([
  'json' => [
    'sp_appid' => 'wx8888888888888888',
    'sp_mchid' => '1230000109',
    'sub_appid' => 'wxd678efh567hg6999',
    'sub_mchid' => '1900000109',
    'description' => 'Image形象店-深圳腾大-QQ公仔',
    'out_trade_no' => '1217752501201407033233368018',
    'time_expire' => '2018-06-08T10:34:56+08:00',
    'attach' => '自定义数据',
    'notify_url' => 'https://www.weixin.qq.com/wxpay/pay.php',
    'goods_tag' => 'WXG',
    'settle_info' => [
      'profit_sharing' => true,
    ],
    'support_fapiao' => true,
    'amount' => [
      'total' => 100,
      'currency' => 'CNY',
    ],
    'payer' => [
      'sp_openid' => 'oUpF8uMuAJO_M2pxb1Q9zNjWeS6o',
      'sub_openid' => 'oUpF8uMuAJO_M2pxb1Q9zNjWeS6o',
    ],
    'detail' => [
      'cost_price' => 608800,
      'invoice_id' => '微信123',
      'goods_detail' => [[
        'merchant_goods_id' => '1246464644',
        'wechatpay_goods_id' => '1001',
        'goods_name' => 'iPhoneX 256G',
        'quantity' => 1,
        'unit_price' => 528800,
      ],],
    ],
    'scene_info' => [
      'payer_client_ip' => '14.23.150.211',
      'device_id' => '013467007045764',
      'store_info' => [
        'id' => '0001',
        'name' => '腾讯大厦分店',
        'area_code' => '440305',
        'address' => '广东省深圳市南山区科技中一道10000号',
      ],
    ],
    'contract_info' => [
      'password_free_contract_id' => '201710180325670965',
    ],
  ],
]);
print_r(json_decode((string) $response->getBody(), true));
返回字典类型描述
prepay_idstring预支付交易会话标识

参阅 官方文档

Published on the GitHub by TheNorthMemory