百度小程序支付填坑

百度小程序支付天坑:

下载openssl window下安装启动 获取公钥与私钥 用于验证

需要RSA私钥 和平台开发者公钥

根据文档请求获取拉起百度收银台的数据

这里有个坑 

$ret['errno'] = 0;
$ret['msg']   = 'success';
$ret['data']  = array('isConsumed'=>2);
echo json_encode($ret);exit;

支付成功必须返回isConsumed的值  代表订单状态  如果不返回或返回错误 就没法退款了,

百度贼坑你还不能平台手动退款 需要发邮件让客户给你处理退款  真够反人类的还是鹅厂正常点

/**
     * 私钥生成签名
     * @param array $assocArr
     * @param $priKey
     * @param bool $rsaPriKeyStr
     * @return string
     */
    private function genSignWithRsa(array $assocArr,$priKey, $rsaPriKeyStr = true){
        $sign = '';
        if (empty($rsaPriKeyStr) || empty($assocArr)) {
            return $sign;
        }
        $priKey = chunk_split($priKey, 64, "\n");
        $priKey = "-----BEGIN RSA PRIVATE KEY-----\n$priKey-----END RSA PRIVATE KEY-----\n";
        if (isset($assocArr['sign'])) {
            unset($assocArr['sign']);
        }
        ksort($assocArr); //按字母升序排序
        $parts = array();
        foreach ($assocArr as $k => $v) {
            $parts[] = $k . '=' . $v;
        }
        $str = implode('&', $parts);
        openssl_sign($str, $sign, $priKey);
        return base64_encode($sign);
    }


     /**
      * 公钥校验签名
      * @param array $assocArr
      * @param bool $rsaPubKeyStr
      * @return bool
      */
     private function checkSignWithRsa(array $assocArr ,$rsaPubKeyStr = true){
         if (!isset($assocArr['sign']) || empty($assocArr) || empty($rsaPubKeyStr)) {
             return false;
         }

         $sign = $assocArr['sign'];
         unset($assocArr['sign']);

         if (empty($assocArr)) {
             return false;
         }

         ksort($assocArr); //按字母升序排序
         $parts = array();
         foreach ($assocArr as $k => $v) {
             $parts[] = $k . '=' . $v;
         }
         $str    = implode('&', $parts);
         $sign   = base64_decode($sign);
         $pubKey = 'bd_pub_key';  // 公钥串
         $pubKey = chunk_split($pubKey, 64, "\n");
         $pubKey = "-----BEGIN PUBLIC KEY-----\n$pubKey-----END PUBLIC KEY-----\n";
         $result = (bool)openssl_verify($str, $sign,$pubKey);
         return $result;
     }
MIICXAIBAAKBgQCm0ZFcSygrPeMcVeirUsvRVZuMNsj3hG2BLTk4e2uQEljRc/TmrNmj4oZC3Cg9FJipUR1VgVFUmIzx6fE0aiEWW3nX15Z60AJ56l7TEAHSLPGtKrw2mVJHlwCpPMyXsruR9OQFN+e4BxlwLWVW4bydtMqR0TgLxcdUfNjuNThNtQIDAQABAoGAGwMMOpmg43+d6tSuXC+H+VmXWlj0qb+zy5r7DP5PKIEQCLpyCXgrtbHUc7cafOl83s3XpiTOephJGlL7T7VvreAS0Lo/bmlMObr2Mllig0SiBCvlCKBMjTs7DR8czHvVFndn8FGvFsy/NnjLXybB9/WqU1KxVd5jO6kheeJgEXECQQDadFVD4D1/JD2HpHW4tBUeXiYgmUoVraOiSJn9CUtRHEACA6FMCkRlTrpr73YkKxT/Lh6ddH1PWOklB95qz8e3AkEAw31WQqcS7+yKX3LtUistfmHo73mQO7ntx41/Oh6wPOqge76HAZcxJrZ3CLm3AOUIYWmrh8t0m9g5clNBrpId8wJABB61jPYpssAoOOqtHbKnw07bQToi343KzEC6Rr9qIDl8K42N+TUoXRDDC04U2FHHr5hbE3Ui9+AhZYVkeHc6uQJBAJF8BKdD+ZbunagdOrsNASVuLlGSUaHxZCE/j7CsSBJ9toOBLq4jW+PopTusIqKa0JrWbl54LscQqugHR/loKrsCQCe0UVJFzOJNsDC1+RxwD0izhs/TF8m+NuqJWw8Rq2gbC7XpTXD2CaPa9MwMImGM0DAZfQ+8ZZ9d9c78akGtjm4=';//RSA私钥



MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCm0ZFcSygrPeMcVeirUsvRVZuMNsj3hG2BLTk4e2uQEljRc/TmrNmj4oZC3Cg9FJipUR1VgVFUmIzx6fE0aiEWW3nX15Z60AJ56l7TEAHSLPGtKrw2mVJHlwCpPMyXsruR9OQFN+e4BxlwLWVW4bydtMqR0TgLxcdUfNjuNThNtQIDAQABWEAPON';//开发者公钥

吐槽一下牛逼点

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值