富友支付的ThinkJS实现(H5)

文章批评了富友支付接口在游戏场景下的不足,包括文档错误、回调地址控制、开发困难等问题,建议游戏开发者优先考虑微信和支付宝等更适用的支付方式。

富友是一个比较大的支付接口提供商,可惜这个支付商主要是提供POS机的收费场景,面向游戏并不是特别好用,如果不是需要H5支付,这个支付接口根本不是好的选择的对象。如果是针对APP,还是直接接微信和支付宝更为合适。

这个支付所提供的接口文档就是个笑话,错误百出,自相矛盾,给出来的例子完全不能代表真实的支付场景。而且回调地址无法自己控制,也就是说一个账号只能有一个回调地址,没办法通过参数传递,这一点就严重的限制了使用场景。开发中的坑特别多,痛苦指数爆表。

总之,准备使用这个支付平台的朋友们慎重慎重再慎重。

const fs      = require('fs');
const Base    = require('./base.js');
const crypto  = require('crypto');
const axios   = require('axios');
const { stringify } = require('querystring');
const { jar } = require('request');

const app_pub_key = fs.readFileSync('./xxxxx', 'ascii');
const fup_pub_key = fs.readFileSync('./xxxxx', 'ascii');

// 准备公钥的格式
let key = ['-----BEGIN PUBLIC KEY-----\n'];
let i = 0;
while( i < app_pub_key.length )
{
  key.push( app_pub_key.substring(i, i + 64) + '\n' );
    i += 64;
}
key.push('-----END PUBLIC KEY-----');

const app_public_key = key.join('');


key = ['-----BEGIN PUBLIC KEY-----\n'];
i = 0;
while( i < fup_pub_key.length )
{
  key.push( fup_pub_key.substring(i, i + 64) + '\n' );
    i += 64;
}
key.push('-----END PUBLIC KEY-----');

const fup_public_key = key.join('');


const app_private_key = fs.readFileSync('xxxxxx', 'ascii');


module.exports = class extends Base {


  pad(num, n) 
  {
      var len = num.toString().length;
      while(len < n) {
        num = "0" + num;
        len ++;
      }
      return num;
  }


  sign(param, key) 
  {
    let map = [];
    let keys = Object.keys(param);  // 获取所有的key
    keys.sort();                      // 排序

    for (let key of keys) 
    {
      //剔除空值及签名字段
      if( key != 'sign' &&
          key != 'reservedSecretPlatId' &&
          key != 'reservedOrderNo' &&
          key != 'reservedDsc' &a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值