返回介绍

JSSDK

发布于 2021-04-03 04:02:27 字数 6664 浏览 1753 评论 0 收藏 0

JSSDK 模块用于生成调起微信支付以及共享收货地址的调用所需的配置参数。

配置

use EasyWeChat\Factory;

$config = [
    // 前面的appid什么的也得保留哦
    'app_id'             => 'xxxx',
    'mch_id'             => 'your-mch-id',
    'key'                => 'key-for-signature',
    'cert_path'          => 'path/to/your/cert.pem', // XXX: 绝对路径!!!!
    'key_path'           => 'path/to/your/key',      // XXX: 绝对路径!!!!
    'notify_url'         => '默认的订单回调地址',     // 你也可以在下单时单独设置来想覆盖它
    // 'device_info'     => '013467007045764',
    // 'sub_app_id'      => '',
    // 'sub_merchant_id' => '',
    // ...
];

$payment = Factory::payment($config);

$jssdk = $payment->jssdk;

生成支付 JS 配置

有三种发起支付的方式:WeixinJSBridge, JSSDK, 小程序

  1. WeixinJSBridge:

     $json = $jssdk->bridgeConfig($prepayId); // 返回 json 字符串,如果想返回数组,传第二个参数 false
    

    javascript:

     ...
     WeixinJSBridge.invoke(
            'getBrandWCPayRequest', <?= $json ?>,
            function(res){
                if(res.err_msg == "get_brand_wcpay_request:ok" ) {
                     // 使用以上方式判断前端返回,微信团队郑重提示:
                     // res.err_msg将在用户支付成功后返回
                     // ok,但并不保证它绝对可靠。
                }
            }
        );
     ...
    
  2. JSSDK:

     $config = $jssdk->sdkConfig($prepayId); // 返回数组
    

    javascript:

     wx.chooseWXPay({
         timestamp: <?= $config['timestamp'] ?>,
         nonceStr: '<?= $config['nonceStr'] ?>',
         package: '<?= $config['package'] ?>',
         signType: '<?= $config['signType'] ?>',
         paySign: '<?= $config['paySign'] ?>', // 支付签名
         success: function (res) {
             // 支付成功后的回调函数
         }
     });
    
  3. 小程序:

     $config = $jssdk->bridgeConfig($prepayId, false); // 返回数组
    

    javascript:

     wx.requestPayment({
         timeStamp: <?= $config['timeStamp'] ?>, //注意 timeStamp 的格式
         nonceStr: '<?= $config['nonceStr'] ?>',
         package: '<?= $config['package'] ?>',
         signType: '<?= $config['signType'] ?>',
         paySign: '<?= $config['paySign'] ?>', // 支付签名
         success: function (res) {
             // 支付成功后的回调函数
         }
     });
    

生成共享收货地址 JS 配置

  1. 发起 OAuth 授权,获取用户 $accessToken,参考网页授权章节。

  2. 使用 $accessToken 获取配置

$configForPickAddress = $jssdk->shareAddressConfig($token);

// 拿着这个生成好的配置 $configForPickAddress 去订单页(或者直接显示订单页)写 js 调用了
// ...

生成 APP 支付配置

$config = $jssdk->appConfig($prepayId);

$config 为数组格式,你可以用 API 返回给客户端

二维码生成工具推荐

你也许需要生成二维码,那么以下这些供参考:

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文