Commit 8325f34c266929d0a519b1fdfc8874157ec7f10a
Committed by
GitHub
Exists in
master
Merge pull request #96 from moohao/patch-1
fix xmlify_payload method
Showing
2 changed files
with
2 additions
and
2 deletions
Show diff stats
lib/wx_pay/service.rb
@@ -454,7 +454,7 @@ module WxPay | @@ -454,7 +454,7 @@ module WxPay | ||
454 | 454 | ||
455 | def xmlify_payload(params, sign_type = WxPay::Sign::SIGN_TYPE_MD5) | 455 | def xmlify_payload(params, sign_type = WxPay::Sign::SIGN_TYPE_MD5) |
456 | sign = WxPay::Sign.generate(params, sign_type) | 456 | sign = WxPay::Sign.generate(params, sign_type) |
457 | - "<xml>#{params.except(:key).map { |k, v| "<#{k}>#{v}</#{k}>" }.join}<sign>#{sign}</sign></xml>" | 457 | + "<xml>#{params.except(:key).sort.map { |k, v| "<#{k}>#{v}</#{k}>" }.join}<sign>#{sign}</sign></xml>" |
458 | end | 458 | end |
459 | 459 | ||
460 | def make_payload(params, sign_type = WxPay::Sign::SIGN_TYPE_MD5) | 460 | def make_payload(params, sign_type = WxPay::Sign::SIGN_TYPE_MD5) |
test/wx_pay/service_test.rb
@@ -48,7 +48,7 @@ class ServiceTest < MiniTest::Test | @@ -48,7 +48,7 @@ class ServiceTest < MiniTest::Test | ||
48 | mch_id: 'mch_id', | 48 | mch_id: 'mch_id', |
49 | key: 'key' | 49 | key: 'key' |
50 | } | 50 | } |
51 | - xml_str = '<xml><body>测试商品</body><out_trade_no>test003</out_trade_no><total_fee>1</total_fee><spbill_create_ip>127.0.0.1</spbill_create_ip><notify_url>http://making.dev/notify</notify_url><trade_type>JSAPI</trade_type><openid>OPENID</openid><app_id>app_id</app_id><mch_id>mch_id</mch_id><sign>172A2D487A37D13FDE32B874BA823DD6</sign></xml>' | 51 | + xml_str = '<xml><app_id>app_id</app_id><body>测试商品</body><mch_id>mch_id</mch_id><notify_url>http://making.dev/notify</notify_url><openid>OPENID</openid><out_trade_no>test003</out_trade_no><spbill_create_ip>127.0.0.1</spbill_create_ip><total_fee>1</total_fee><trade_type>JSAPI</trade_type><sign>172A2D487A37D13FDE32B874BA823DD6</sign></xml>' |
52 | assert_equal xml_str, WxPay::Service.send(:make_payload, params) | 52 | assert_equal xml_str, WxPay::Service.send(:make_payload, params) |
53 | end | 53 | end |
54 | end | 54 | end |