Skip to content

Commit ad92f94

Browse files
authored
Merge pull request bitpay#2341 from matiu/feat/paypro-headers
add bp_partner
2 parents 4dd415a + 042ffe7 commit ad92f94

File tree

3 files changed

+44
-1
lines changed

3 files changed

+44
-1
lines changed

packages/bitcore-wallet-client/src/lib/api.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ export class API extends EventEmitter {
4747
keyDerivationOk: boolean;
4848
noSign: any;
4949
password: any;
50+
bp_partner: string;
51+
bp_partner_version: string;
5052

5153
static PayPro = PayPro;
5254
static Key = Key;
@@ -68,6 +70,9 @@ export class API extends EventEmitter {
6870
this.logLevel = opts.logLevel || 'silent';
6971
this.supportStaffWalletId = opts.supportStaffWalletId;
7072

73+
this.bp_partner = opts.bp_partner;
74+
this.bp_partner_version = opts.bp_partner_version;
75+
7176
this.request = new Request(opts.baseUrl || BASE_URL, { r: opts.request });
7277
log.setLevel(this.logLevel);
7378
}
@@ -1728,6 +1733,9 @@ export class API extends EventEmitter {
17281733
coin: txp.coin || 'btc',
17291734
network: txp.network || 'livenet',
17301735

1736+
bp_partner: this.bp_partner,
1737+
bp_partner_version: this.bp_partner_version,
1738+
17311739
// for testing
17321740
request: this.request
17331741
},

packages/bitcore-wallet-client/src/lib/paypro.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,9 +280,16 @@ export class PayPro {
280280

281281
opts.headers = {
282282
'Content-Type': JSON_PAYMENT_CONTENT_TYPE,
283-
'Accept': JSON_PAYMENT_ACK_CONTENT_TYPE,
283+
'Accept': JSON_PAYMENT_ACK_CONTENT_TYPE
284284
};
285285

286+
if (opts.bp_partner){
287+
opts.headers['BP_PARTNER'] = opts.bp_partner;
288+
if (opts.bp_partner_version){
289+
opts.headers['BP_PARTNER_VERSION'] = opts.bp_partner_version;
290+
}
291+
}
292+
286293
opts.body = JSON.stringify({
287294
currency: COIN,
288295
transactions: [

packages/bitcore-wallet-client/test/api.test.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ helpers.newClient = (app) => {
4848
return new Client({
4949
baseUrl: '/bws/api',
5050
request: request(app),
51+
bp_partner: 'xxx',
52+
bp_partner_version: 'yyy',
5153
// logLevel: 'debug',
5254
});
5355
};
@@ -3322,6 +3324,32 @@ describe('client API', () => {
33223324
});
33233325
});
33243326
});
3327+
3328+
it('Should set bp_partner', (done) => {
3329+
clients[0].getTxProposals({}, (err, txps) => {
3330+
should.not.exist(err);
3331+
var changeAddress = txps[0].changeAddress.address;
3332+
let signatures = keys[0].sign(clients[0].getRootPath(), txps[0]);
3333+
clients[0].pushSignatures(txps[0], signatures, (err, xx, paypro) => {
3334+
should.not.exist(err);
3335+
let signatures = keys[1].sign(clients[1].getRootPath(), txps[0]);
3336+
clients[1].pushSignatures(xx, signatures, (err, yy, paypro) => {
3337+
should.not.exist(err);
3338+
3339+
yy.status.should.equal('accepted');
3340+
let spy = sinon.spy(Client.PayPro, 'request');
3341+
clients[1].broadcastTxProposal(yy, (err, zz, memo) => {
3342+
should.not.exist(err);
3343+
var args = spy.lastCall.args[0];
3344+
var data = args.headers;
3345+
data.BP_PARTNER.should.equal('xxx');
3346+
data.BP_PARTNER_VERSION.should.equal('yyy');
3347+
done();
3348+
});
3349+
});
3350+
});
3351+
});
3352+
});
33253353
});
33263354

33273355

0 commit comments

Comments
 (0)